python继承中面临的问题
正在尝试使用python测试继承。我的情况如下 在文件夹中,我有一个名为Asset\u base的基类和一个名为Asset的子类,它们如下所示。 在python继承中面临的问题,python,python-3.x,python-import,Python,Python 3.x,Python Import,正在尝试使用python测试继承。我的情况如下 在文件夹中,我有一个名为Asset\u base的基类和一个名为Asset的子类,它们如下所示。 在Asset_Base.py文件中: class Asset_Base(object): def __init__(self): pass def sayHello(self): print('Hello!') import Asset_Base class Asset(Asset_Base):
Asset_Base.py
文件中:
class Asset_Base(object):
def __init__(self):
pass
def sayHello(self):
print('Hello!')
import Asset_Base
class Asset(Asset_Base):
def __init__(self):
pass
def sayHello(self):
super().sayHello()
a = Asset()
a.sayHello()
在Asset.py
文件中:
class Asset_Base(object):
def __init__(self):
pass
def sayHello(self):
print('Hello!')
import Asset_Base
class Asset(Asset_Base):
def __init__(self):
pass
def sayHello(self):
super().sayHello()
a = Asset()
a.sayHello()
当我运行此资产类别时,出现此错误
class Asset(Asset_Base):
TypeError: module.__init__() takes at most 2 arguments (3 given)
尝试了几件事情后发现,如果我只是像下面那样更改import语句,效果很好
来自资产基础导入*
我是python新手,不确定两者之间的区别
导入资产库
和从资产库导入*
有人能解释一下吗。
提前感谢。这是因为在第一个示例中,您的类继承自
Asset\u Base
模块(即.py文件)——而不是它包含的同名类
请注意错误消息是如何谈论模块的。\uuuu init\uuuu()
更改导入语句,使其从Asset\u Base导入Asset\u Base读取
此外,“模块包含同名类”是Python中的反模式。避免那样做
import Asset_Base
导入模块(文件)
导入文件中的所有内容(在本例中为类资产库)
有关更多信息,请查看Python。另外,请注意,通过遵循PEP-8的名称指南,可以很容易地避免使用与模块同名的类:asset_base.py
将至少包含类AssetBase
。请查看Python教程。