获得自我没有定义

时间:2018-03-10 07:21:33

标签: python

我实际上是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()

1 个答案:

答案 0 :(得分:2)

您的方法必须接受self作为默认参数。 如下所示更改addsort方法签名。

添加self作为参数使该方法可用于该类的所有对象/实例。

obj = App()
obj.addsort()


def addsort(self):
        self.mytable.append(['Evans', '4', '2:23.717'])
        print(self.sorted)

如果您不希望实例调用/使用addsort,请将其设为类方法,并确保它不依赖于任何自身参数。