ban*_*ana 12 python initialization
__init__()
创建对象时调用该函数.__init__()
在创建对象函数之后再次调用它是否可以?
instance = cls(p1=1, p2=2)
# some code
instance.__init__(p1=123, p2=234)
# some more code
instance.__init__(p1=23, p2=24)
Run Code Online (Sandbox Code Playgroud)
为什么有人想要调用__init__()
已经创建的对象?
好问题.我想重新初始化实例的字段.
Ale*_*lli 13
__init__
只要__init__
用你想要获得的效果编码(无论可能是什么),在一个对象上多次调用就可以了.它发生的一个典型情况(所以你最好编码__init__
! - )是你的类的__new__
方法返回类的一个实例:它确实导致__init__
在返回的实例上调用(可能是第二个,或第二十个,时间,如果你通过你的"回收"实例__new__
! - ).
你可以,但这有点破坏了__init__
它的意图。很多 Python 真的只是约定俗成,所以你不妨遵循 then 并期望__init__
只被调用一次。我建议创建一个名为init
orreset
或设置实例变量的函数,当您想重置实例时使用它,并且__init__
只需调用init
. 这肯定看起来更理智:
x = Pt(1,2)
x.set(3,4)
x.set(5,10)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8109 次 |
最近记录: |