【发布时间】:2026-01-12 05:40:02
【问题描述】:
我想知道是否有任何方法可以创建一个类的对象,但不要调用它的__init__ 方法:
看下面的代码:
>>> class test():
def __init__(self):
print("an object created of this class")
>>> a=test()
an object created of this class
>>>
我想要一种方法来创建 test() 类的对象,但不要打印 an object created of this class。
有什么办法吗?
更新:
假设我已经实现了这个类并实例化了它的20 对象,我需要它的__init__ 方法来处理所有这些对象。现在我想实例化一些新对象,但我不想再调用它的__init__ 方法了。有什么办法吗?
【问题讨论】:
-
您的意思是一般地创建一个没有
__init__的类,还是避免调用现有类的已经实现的__init__?__init__中的什么是您不希望在创建实例时发生的事情(如果是这种情况,为什么会在__init__中发生这种情况)? -
我假设这是一个简化的示例,并且您的实际应用程序在 init 中隐藏了更多代码,我的建议是简单地添加一个额外的关键字参数初始化,如果它设置为 true 则返回而不是执行 init 的其余部分
-
@jonrsharpe 是的,这个
__init__方法是一个已经实现的类的一部分,我在程序的其他部分需要它的print()语句,我只是希望它没有呼吁一个特定的对象! (只是好奇) -
也许应该有一个
verbose参数来定义这些prints 是否发生,或者使用logging,或者......这样一个抽象的例子很难给出建议。 -
更新并没有真正让事情变得更清楚 - 更具体的数字并不能真正澄清问题(另外,没有必要包含单独的“更新”部分,感兴趣的用户可以查看更改历史反正)。一般来说,如果
__init__中有代码不需要运行来初始化类的所有实例,移动它。
标签: python python-2.7 python-3.x