在类构造函数中定义逻辑以基于python中的其他构造函数参数修改实例变量

2024-05-02 14:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python类,在这个类中,很少有参数发送给构造函数,如下所示

class Test(object):
    def __init__(self, a, b):
        self.a = a
        if b<10:
            self.a = a*2

我知道,构造函数只是用来初始化变量的,构造函数内部不应该有逻辑。但是,如果不是这样的话,我怎么能用“b”变量来设置基于逻辑的“a”变量的值呢。我试着利用财产。下面是我的代码

class Test(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b
    @property
    def a(self):
        self._a
    @a.setter
    def a(self, value):
        if self.b < 10:
            self._a = value*2
        else:
            self._a = value

但,问题是,在使用构造函数初始化时,并没有调用setter。那么,如何解决修改构造函数中少数变量的默认设置的问题呢


Tags: 代码testself利用参数ifobjectinit