将属性传递给类方法

时间:2020-08-05 23:16:41

标签: python python-3.x

如何将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。

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”概念。也许其他人可以帮助您解决您的具体情况。

相关问题