4
我想從另一個python腳本中繼承一個類。Python:未綁定的方法__init __()from import.class
我從同一個文件中進行子類化時,我已經完成了以下工作。
widge.py
class widget(object):
def __init__(self,bob):
#do something
class evenWidgetier(widget):
def __init__(self, bob):
widget.__init__(self,bob)
#do something
但是,一旦我在繼承中添加從另一個文件..
superWidget.py
import widge
class superWidgety(widge.evenWidgetier):
def __init__(self, bob):
widge.widget.__init__(self,bob)
#do something
我得到一個錯誤:
unbound method __init__() must be called with widget instance as first argument
有沒有一種方法,我可以從另一個包繼承一個類,作品?
。
出於好奇,這是怎麼回事? 實質上,這看起來和我完全相同。我可以通過使用widge.widget()從另一個文件中調用一個類,以便該方法似乎已經建立。通過引用聲明中的類,我可以在類處於同一個文件中時進行子類化。在一個聲明中使用一個導入類中的類是什麼?爲什麼它在同一個文件中將自己視爲正確的方法,但在導入時將自身視爲未綁定的方法?
的特別,我的代碼是這樣的(剝離部分應該不會影響這一點。
Attributor.py
class Tracker(object):
def __init__(self, nodeName=None, dag=None):
#Tracking stuff
class Transform(Tracker):
#Does stuff with inherited class
timeline_tab.py
import Attributor as attr
class timeline(attr.Transform):
#some vars
def __init__(self, nodeName=None):
attr.Transform.__init__(self,nodeName=nodeName)
#Additional init stuff, but doesn't happen because error on previous line
請告訴我們的代碼,你初始化類... – matino
我無法重現您爲您編寫的最小示例給出的錯誤消息。 – jofel
您確定子類實際上是您的實際代碼中的子類嗎?錯誤消息是建議'self'不是父類的一個實例,如果繼承正常工作,它應該是這樣。 – Blckknght