yas*_*sar 12 python methods class
我想知道如何__init__()调用方法.是__new__()调用它,还是__call__()在用它创建实例之后调用它,或者用__new__()其他方式调用它?
Python确定__new __()是否应该调用__init __():
如果__new __()返回一个cls实例,那么新实例的__init __()方法将被调用,如__init __(self [,...]),其中self是新实例,其余参数与传递给的相同. __新__().
如果重写__new __()并且不返回该类的实例,则不会调用__init __().
当像函数一样调用实例对象时,会调用__call __():
class MyObj:
def __call__():
print 'Called!'
>>> mo = MyObj()
>>> mo()
Called!
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用您想要的任何参数和逻辑来定义__call __().
| 归档时间: |
|
| 查看次数: |
3084 次 |
| 最近记录: |