Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 附加到列表-实例属性_Python - Fatal编程技术网

Python 附加到列表-实例属性

Python 附加到列表-实例属性,python,Python,我想添加一个列表作为Python类实例属性(即,不是类属性),然后添加一个类方法,该方法将向列表中追加项 e、 g.我们有一个员工类,每个员工可能获得过不同的奖励,这些奖励将存储在列表中 class Employee: def __init__(self, name, salary): self.name = name self.salary = salary employeeAwards = [] def addAward(se

我想添加一个列表作为Python类实例属性(即,不是类属性),然后添加一个类方法,该方法将向列表中追加项

e、 g.我们有一个员工类,每个员工可能获得过不同的奖励,这些奖励将存储在列表中

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        employeeAwards = []

    def addAward(self, Award):
        employeeAwards.append(Award)
但是,如果这样做,我会在实例属性(employeeAwards)上得到一个“未解析引用”错误


我应该在哪里声明类实例属性?

您需要将其绑定到
self

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        self.employeeAwards = []

    def addAward(self, Award):
        self.employeeAwards.append(Award)

您需要将其绑定到
self

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        self.employeeAwards = []

    def addAward(self, Award):
        self.employeeAwards.append(Award)
我想已经指出了正确的解决方案:将它绑定到
self

关于实例变量的讨论很有趣:绑定到
self
的每个变量(或方法)实际上都是实例变量

类变量如下所示:

class Employee(object):
    employeeAwards = []

    def __init__(self, name, salary):
        ...
我想已经指出了正确的解决方案:将它绑定到
self

关于实例变量的讨论很有趣:绑定到
self
的每个变量(或方法)实际上都是实例变量

类变量如下所示:

class Employee(object):
    employeeAwards = []

    def __init__(self, name, salary):
        ...

你想要一个附加到实例属性的类方法?!还是说实例方法?
self.employeeAwards=[]
然后
self.employeeAwards.append(Award)
您想要一个附加到实例属性的类方法吗?!或者您是指实例方法吗?
self.employeeAwards=[]
然后是
self.employeeAwards.append(Award)
这也是一个有效的答案,但在将列表用作类属性时应小心。请注意,在使用“附加到列表”时,实际上是在更新类属性,而不是实例属性。这也是一个有效的答案,但在将列表用作类属性时应小心。请注意,使用“附加到列表”时,实际上是在更新class属性,而不是instance属性。