Python __init__不执行变量

时间:2018-11-27 08:38:13

标签: python

我正在寻找一种初始化类中变量的方法。这个变量也依赖于我在同一类中初始化的其他变量。这是一个例子。

Class class():
    def __init__()
        self.a = None
        self.b = None
        self.sum = self.a + self.b

    def change_a_and_b()
       self.a = input("a = ")
       self.b = input("b = ")

    def print_sum()
        print(self.sum)

这是一个简化的示例。在我的程序中,self.sum是一个复杂的计算,我想像“快捷方式”一样使用,因此我不需要写很多次。问题是我在 init 函数之后输入了变量。运行self.sum = self.a + self.b时,我只是不想执行__init__。我认为有a do_thing个参数,但我不知道如何使用它。

1 个答案:

答案 0 :(得分:4)

您可以将sum设置为属性:

class my_class():
    def __init__(self)
        self.a = None
        self.b = None

    @property
    def sum(self):
        return self.a + self.b

    def change_a_and_b(self)
       self.a = input("a = ")
       self.b = input("b = ")

    def print_sum(self)
        print(self.sum)