我实际上是python的新手,我有一个将添加和排序的func,所以我想打印排序列表表但是我收到错误
Traceback (most recent call last):
File "source_file.py", line 12, in <module>
App.addsort()
self.mytable.append(['Evans', '4', '2:23.717'])
NameError: name 'self' is not defined
这是代码 - 我做错了什么?
class App:
def __init__(self):
self.mytable = [
('Charlie', '3', '2:23.169'),
('Dan', '5', '2:24.316'),
('Bill', '2', '2:23.123'),
('Alan', '1', '2:22.213'),
]
self.sorted = sorted(self.mytable, key=operator.itemgetter(2))
def addsort():
self.mytable.append(['Evans', '4', '2:23.717'])
print(self.sorted)
App.addsort()
答案 0 :(得分:2)
您的方法必须接受self作为默认参数。 如下所示更改addsort方法签名。
添加self作为参数使该方法可用于该类的所有对象/实例。
obj = App()
obj.addsort()
def addsort(self):
self.mytable.append(['Evans', '4', '2:23.717'])
print(self.sorted)
如果您不希望实例调用/使用addsort,请将其设为类方法,并确保它不依赖于任何自身参数。