Python:import.class

时间:2016-02-01 14:51:45

标签: python import subclass

我正在尝试从另一个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 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

1 个答案:

答案 0 :(得分:1)

$a="peter"; $b="Ben"; $c="Joe"; $a=array($a,$b,$c); for($i=0; $i<3; $i++) { $a[$i]=>$i; } asort($a); foreach($a as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } 中更改superWidget.py以使用SuperWidget

super