如何重写init?

2024-04-25 03:38:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有:

Class A:
    def __init__(self, y):
        blah, blah, blah
    def af(self, h):
        print "this"

我像这样战胜了敌人:

def my_init(self,h):
    gangsta wangsta
def aff(self,h):
    print "that"

A.af = aff # works
A.__init__ = my_init # doesn't work

它不能与init一起工作….如何使用/__init__?你知道吗


Tags: selfthatinitmydefthisclassaf
2条回答

到底是什么问题?你知道吗

>>> class X:
...   def __init__(self):
...     print "Original Init!"
...
>>> def new_init(self):
...    print "OK New Init"
>>> X()
Original Init!
>>> X.__init__ = new_init
>>> X()
OK New Init

最简单的方法是子类化:

class B(A):
     __init__ = my_init

相关问题 更多 >