面对python继承中的问题

时间:2014-11-20 15:01:40

标签: python python-3.x python-import

尝试使用python测试继承。我的情况如下所示..

在一个文件夹中,我有一个名为Asset_Base的基类和一个名为Asset的子类,它们看起来如下所示..

<{1>}文件中的

Asset_Base.py
<{1>}文件中的

class Asset_Base(object):
    def __init__(self):
        pass

    def sayHello(self):
        print('Hello!')

我运行此资产类收到此错误 ..

Asset.py

尝试了一些事情后,如果我只是更改下面的导入语句就可以正常工作

import Asset_Base class Asset(Asset_Base): def __init__(self): pass def sayHello(self): super().sayHello() a = Asset() a.sayHello()

我是python的新手,不确定

之间的区别

class Asset(Asset_Base): TypeError: module.__init__() takes at most 2 arguments (3 given) from Asset_Base import *

任何人都可以解释一下。

提前致谢。

2 个答案:

答案 0 :(得分:5)

这是因为在您的第一个示例中,您的类继承自Asset_Base 模块(即.py文件) - 不是类它包含的名称相同。

请注意您的错误消息如何讨论module.__init__()

更改您的import语句,使其显示为from Asset_Base import Asset_Base

此外,“模块包含一个同名的类”是Python中的反模式。避免这样做。

答案 1 :(得分:3)

import Asset_Base

导入模块(文件)

from Asset_Base import * 

导入文件中的所有内容(本例中为Asset_Base类)

有关更多信息,请查看Python documentation