通过参考许多在线示例,我试图在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'未定义
我无法理解这个错误,或者这不是编码我的要求的方式吗?
答案 0 :(得分:0)
你不能像你想要的那样使用super()一个类属性声明。
它可以在__init__
方法中使用,但您需要定义班级中self
或mem
的内容。
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中有一些约定,如果您希望其他人轻松阅读和理解您的代码,则自我更好)