我收到TypeError: 'list' object is not callable
但我无法查看通常的使用答案list[]
而不是list()
的适用位置。我似乎没有使用任何一种符号,只是调用列表中的函数。我很困难,可以在这里使用一些帮助
import scheduler
def main():
sched = scheduler.Scheduler()
sched.line_list("/home/scabandari/Desktop/threads.txt") # Error is caused by this line
# sched.create_processList()
if __name__ == "__main__":
main()
scheduler.py:
import process
class Scheduler:
def __init__(self):
self.line_list = []
self.process_list = []
pass
# populates line_list[] from "/location/.txt" file, each line reps a process object
def line_list(self, file):
f = open(file)
getlines = f.readlines()
for line in getlines:
self.line_list.append(line)
self.line_list.pop(0)
# populates process_list[] from line_list[]
def process_list(self):
for line in self.line_list:
temp_arr = line.split()
self.process_list.append(process.Process(temp_arr[0], temp_arr[1],
temp_arr[2], temp_arr[3]))
for proc in self.process_list:
proc.print_process()
答案 0 :(得分:0)
知道如何定义名为Scheduler
的类对象,如下所示
class Scheduler:
def __init__(self):
self.line_list = []
self.process_list = []
def line_list(self, file):
f = open(file)
getlines = f.readlines()
for line in getlines:
self.line_list.append(line)
self.line_list.pop(0)
...
然后实例化它,即
inst = Scheduler()
您对方法line_list
所做的定义被__init__
的后实例化执行覆盖,后者将其转换为列表。
这意味着,正如melpomene在评论中提到的那样,
您需要决定是否希望
line_list
成为方法或列表。它不可能两者兼而有之。
因此,您可能想要做的是重命名您的方法,并给它一个代表其实际功能的名称,例如。
...
def populate_line_list(self, file):
'''
Method which populates line_list from "/location/.txt" file,
each line reps a process object
'''
f = open(file)
getlines = f.readlines()
for line in getlines:
self.line_list.append(line)
self.line_list.pop(0)
f.close() #do not forget to close your file, or use a with-statement
...
最后你可以做到
import scheduler
def main():
sched = scheduler.Scheduler()
sched.populate_line_list("/home/scabandari/Desktop/threads.txt")
if __name__ == "__main__":
main()