如何将class
属性传递给class
方法,以便可以修改该属性?
class foo:
def __init__(self):
self.diamond = 1
self.gold = 10
self.change(self.diamond)
self.change(self.gold)
def change(self, x):
x+=1
model = foo()
print(model.diamond)
输出: 1
我希望diamond
变成2。
答案 0 :(得分:1)
这对您来说是一个很好的解决方案吗?
class foo:
def __init__(self):
self.diamond = 1
def change(self):
self.diamond += 1
model = foo()
model.change()
print(model.diamond)
答案 1 :(得分:0)
首先让我说一下,您的示例中没有类方法或类变量。您拥有的是实例变量和实例方法,请注意self
关键字。现在,您可以通过任何实例方法访问和修改实例变量,就像@Almog早先回答过的那样。
您的x
方法中的change
是一个局部变量,基本上在您的方法之外不可用。至于如何通过将变量传递给函数来修改变量,我认为您的代码不可行。您将需要修改dataclass
之类的内容。查看与此相关的“ PassByValue”和“ PassByReference”概念。也许其他人可以帮助您解决您的具体情况。