如何访问包含实例成员的 python 静态方法?
How to access python static method which contain instance members?
我尝试在 python 中学习静态方法。这是我的代码-
class ABC:
def __init__(self):
self.a = 10
self.b = 20
self.lst = []
@staticmethod
def addNappend(self, c):
sum = self.a + self.b + c
self.lst.append(sum)
print(self.lst)
if __name__ == '__main__':
ABC.addNappend(30)
我的代码 运行 出错。
[TypeError: addNappend() 缺少 1 个必需的位置参数:'c']
需要改变什么?谢谢大家
信息很明确:该方法需要两个参数:一个 ABC
对象和另一个值;这些是位置参数。由于您将其称为 class 方法,而不是 instance 方法,因此您必须明确提供 ABC
目的。目前,您没有 self
可以更改;你期望那个电话做什么?
相反,实例化一个对象并使用它:
phone_button = ABC()
phone_button.addNappend(30)
请注意,这与将其设为静态方法完全无关......这似乎在 class.
中没有任何作用
我尝试在 python 中学习静态方法。这是我的代码-
class ABC:
def __init__(self):
self.a = 10
self.b = 20
self.lst = []
@staticmethod
def addNappend(self, c):
sum = self.a + self.b + c
self.lst.append(sum)
print(self.lst)
if __name__ == '__main__':
ABC.addNappend(30)
我的代码 运行 出错。 [TypeError: addNappend() 缺少 1 个必需的位置参数:'c']
需要改变什么?谢谢大家
信息很明确:该方法需要两个参数:一个 ABC
对象和另一个值;这些是位置参数。由于您将其称为 class 方法,而不是 instance 方法,因此您必须明确提供 ABC
目的。目前,您没有 self
可以更改;你期望那个电话做什么?
相反,实例化一个对象并使用它:
phone_button = ABC()
phone_button.addNappend(30)
请注意,这与将其设为静态方法完全无关......这似乎在 class.
中没有任何作用