python class 使用单独的脚本文件继承
python class inheritance with separate script files
当 类 位于单独的文件中时,我的子类没有继承超类属性时遇到问题。当我 运行 我的主要 bot.py
我收到一条错误消息:
AttributeError: 'Serv' object has no attribute 'server'
这是我的例子:
文件 1 [bot.py]
import commands
class Bot(object):
def __init__(self):
self.server = "myserver.domain.com"
def getserv(self):
return self.server
if __name__ == "__main__":
print( commands.Serv() )
文件 2 [commands.py]
from bot import Bot
class Serv(Bot):
def __init__(self):
return self.getserv()
我对 python 中的对象继承有些陌生,我确信这是一个我忽略的简单问题。任何帮助识别我的问题的帮助将不胜感激!提前致谢。
你的子类 __init__
没有意义。
您应该改为:
from bot import Bot
class Serv(Bot):
def __init__(self):
super().__init()
self.something_else = whatever
然后自定义 __str__
或 __repr__
如果您想更改子类的显示方式。
当 类 位于单独的文件中时,我的子类没有继承超类属性时遇到问题。当我 运行 我的主要 bot.py
我收到一条错误消息:
AttributeError: 'Serv' object has no attribute 'server'
这是我的例子:
文件 1 [bot.py]
import commands
class Bot(object):
def __init__(self):
self.server = "myserver.domain.com"
def getserv(self):
return self.server
if __name__ == "__main__":
print( commands.Serv() )
文件 2 [commands.py]
from bot import Bot
class Serv(Bot):
def __init__(self):
return self.getserv()
我对 python 中的对象继承有些陌生,我确信这是一个我忽略的简单问题。任何帮助识别我的问题的帮助将不胜感激!提前致谢。
你的子类 __init__
没有意义。
您应该改为:
from bot import Bot
class Serv(Bot):
def __init__(self):
super().__init()
self.something_else = whatever
然后自定义 __str__
或 __repr__
如果您想更改子类的显示方式。