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__ 如果您想更改子类的显示方式。