有没有什么方法可以在不触发该类的 __init__
部分的情况下调用类内的函数?假设我有下一节课,通常我会这样调用函数:
class Potato():
def __init__(self):
print("Initializing")
def myfunction(self):
print("I do something")
Potato().myfunction()
但正如预期的那样打印初始化部分。现在,如果我想调用 myfunction 而不触发它。你会怎么做?这样做的利弊?甚至有可能吗?
原文由 Saelyth 发布,翻译遵循 CC BY-SA 4.0 许可协议
对的,这是可能的。
使用辅助函数
您可以编写一个辅助函数,用虚拟方法替换您的类的
__init__
方法,然后实例化该类,然后我们将旧的__init__
重新分配给类。演示:
覆盖
__new__
您可以覆盖类的
__new__
方法,然后根据参数您可以用虚拟方法替换__init__
。演示: