gpt4 book ai didi

python - 在实例方法中更新类变量

转载 作者:太空狗 更新时间:2023-10-29 20:40:48 24 4
gpt4 key购买 nike

class MyClass:
var1 = 1

def update(value):
MyClass.var1 += value

def __init__(self,value):
self.value = value
MyClass.update(value)

a = MyClass(1)

我正在尝试在方法(_init_)中更新类变量(var1),但我给了我:

TypeError: unbound method update() must be called with MyClass instance as first argument (got int instance instead)

我这样做是因为我想通过调用 print MyClass.var1 轻松访问类中的所有变量

最佳答案

你混淆了实例

class MyClass(object):
pass

a = MyClass()

MyClass 是一个类,a 是该类的一个实例。您的错误是 update 是一个实例方法。要从 __init__ 调用它,请使用:

self.update(value)

MyClass.update(self, value)

或者,使 update 成为一个类方法:

@classmethod
def update(cls, value):
cls.var1 += value

关于python - 在实例方法中更新类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20923411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com