python执行基类函数抛出错误

时间:2017-07-20 05:58:20

标签: python

通过参考许多在线示例,我试图在python3中实现继承。
在这里,我尝试使用父类函数并在子类中设置类变量。

class adapter():
    def __init__(mem):
        mem.port=27017
        mem.ins='172.36.36.1'
        mem.klust=False
        mem.net=True
        mem.encryption=False
    def mKonnect(mem):
        eaeIns=mem.ins+':'+str(mem.port)
        return mClient(eaeIns)

class Fuse(adapter):
    mongoConnect=super(Fuse,mem).mKonnect()
    dbi=mongoConnect.eaedw.InstanceConfiguration

导入此模块时,我收到以下错误:

mongoConnect=super(Fuse,self).mKonnect()
     

NameError:name' Fuse'未定义

我无法理解这个错误,或者这不是编码我的要求的方式吗?

1 个答案:

答案 0 :(得分:0)

你不能像你想要的那样使用super()一个类属性声明。

它可以在__init__方法中使用,但您需要定义班级中selfmem的内容。

class Fuse(adapter):
    def __init__(self):
        super(Fuse, self).__init__()
        mongoConnect=super(Fuse,self).mKonnect()
        dbi=mongoConnect.eaedw.InstanceConfiguration

甚至

class Fuse(adapter):
    def __init__(self):
        super(Fuse, self).__init__()
        dbi=self.mKonnect().eaedw.InstanceConfiguration

(您可以重命名self,但这并不意味着您应该这样做,Python中有一些约定,如果您希望其他人轻松阅读和理解您的代码,则自我更好)