gpt4 book ai didi

Python:来自 import.class 的未绑定(bind)方法 __init__()

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:48 25 4
gpt4 key购买 nike

我正在尝试从另一个 python 脚本中继承一个类。

从同一文件中进行子类化时,我已经完成了以下操作,并且它有效。

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() 从另一个文件调用一个类,因此该方法似乎已建立。当类在同一个文件中时,我可以通过在声明中引用类来进行子类化。在中断的声明中使用来自导入的类是什么意思?为什么它在同一个文件中将自己视为正确的方法,但在导入时却将自己视为未绑定(bind)的方法?

具体来说,我的代码是这样的(剥离不应该影响它的部分。

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

最佳答案

superWidget.py 中更改 SuperWidget 以使用 super

    import widge
class superWidgety(widge.evenWidgetier):
def __init__(self, bob):
super(SuperWidget,self).__init__(bob)
#do something

关于Python:来自 import.class 的未绑定(bind)方法 __init__(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35133512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com