Python _uinit _;不执行变量

Python _uinit _;不执行变量,python,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 = ")

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

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函数之后输入变量。我只是不想在运行init时执行self.sum=self.a+self.b。我认为有一个do_thing参数,但我不知道如何使用它。

您可以将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)
您可以将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)

我仍然可以像正常的self.variable一样访问它吗?是的,就像您在示例中看到的一样,尝试一下。这就是一个属性的要点,它是一种把函数当作变量的语法糖。我还是用self.sum来访问它吗?是的,你是这样。self.sum,而不是self.sum。我仍然可以像正常的self.variable一样访问它吗?是的,就像您在示例中看到的一样尝试一下。这就是一个属性的要点,它是一种把函数当作变量的语法糖。我还是用self.sum来访问它吗?是的,你是这样。self.sum,而不是self.sum。为什么不在change_a_和_b中设置sum?因为它是我在同一类的不同函数中使用的一种计算方法,所以?在调用change_a_和_b之后,您将始终必须使用它…为什么不在change_a_和_b中设置sum?因为它是我在同一类的不同函数中使用的一种计算方法所以?在您调用change\u a\u和\u b之后,您将始终必须使用它。。。