Python:import.class中的未绑定方法__init __()

Python:import.class中的未绑定方法__init __(),第1张

概述我正在尝试从另一个 python脚本中继承一个类. 当我从同一个文件中进行子类化时,我已经完成了以下 *** 作,并且它可以工作. widge.py class widget(object): def __init__(self,bob): #do something class evenWidgetier(widget): def 我正在尝试从另一个 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()从另一个文件中调用一个类,这样就可以建立该方法.通过引用声明中的类,我可以在类在同一个文件中时进行子类化.在断言的声明中使用导入类是什么意思?为什么它在同一个文件中看作是正确的方法,但在导入时将自己视为未绑定的方法?

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

Attributor.py    class Tracker(object):        def __init__(self,nodename=None,dag=None):            #Tracking stuff    class transform(Tracker):        #Does stuff with inherited classtimeline_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中的未绑定方法__init __()全部内容,希望文章能够帮你解决Python:import.class中的未绑定方法__init __()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存