3 回答

TA贡献1946条经验 获得超4个赞
该load函数实际上是一个对象方法。在Python世界中,对象方法的第一个参数始终指向实例,实例将在调用前隐式传递给方法。要调用对象方法,首先需要创建一个对象,然后通过点语法调用该方法。当然
例如
id = 3
newCorrectChair = CorrectChair(id)
# self is implicitly passed here, this style stems from C.
CorrectChair(id).load(10)
如果您尝试编写类方法,则必须添加@classmethod装饰器。
class CorrectChair:
# Blah...
@classmethod
def load(cls, num):
# do something
return
如果您尝试编写静态函数,则应使用@staticmethoddecorator装饰该方法。
class CorrectChair:
# Blah...
@staticmethod
def load(cls, num):
# do something
return

TA贡献1828条经验 获得超13个赞
您必须创建一个实例并在其上调用方法:
替换CorrectChair.load(1)为:
c_chair = CorrectChair(some_id)
c_chair.load(1)

TA贡献1777条经验 获得超10个赞
该错误表明您正在尝试直接从类中调用方法,而该方法也需要对象引用。在对包含“ self”的任何方法进行任何调用之前,需要首先创建该类的实例。
在您的情况下,代码应为:
correct_chair = CorrectChair(id)
correct_chair.load(1)
与您类中的方法比较-correct_chair对应于self,1对应于方法中的“数字”
def load(self, number):
new_val = self.check(self.count + number)
self.count = new_val
添加回答
举报