尝试使用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 *
任何人都可以解释一下。
提前致谢。
答案 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。