Skip to main content
 首页 » 编程设计

Python:如何从成员函数中调用构造函数

2025年05月04日9birdshome

这个问题/答案 ( Python call constructor in a member function ) 说可以从成员函数中调用构造函数。

我该怎么做?

风格好吗?

我用下面的代码试了一下:

class SomeClass(object): 
    def __init__(self, field): 
        self.field = field 
 
    def build_new(self): 
        self = SomeClass(True) 
 
def main(): 
    inst = SomeClass(False) 
    inst.build_new() 
    print(inst.field) 
 
if __name__ == '__main__': 
    main() 

作为输出,我得到:False

既然我调用了 build_new() 方法,inst.field 应该是 True 还是不是?

请您参考如下方法:

问题不在于调用构造函数,而在于你对结果做了什么。 self 只是一个局部变量:分配给它不会改变当前实例的任何内容,它只会重新绑定(bind)名称以指向一个新实例,然后在结束时丢弃该实例方法。

我不完全确定你想做什么,但也许你想要一个类方法?

class SomeClass(object): 
   ... 
   @classmethod 
   def build_new(cls): 
       return cls(True) 
 
 
 
SomeClass.build_new(False)