Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python继承中面临的问题_Python_Python 3.x_Python Import - Fatal编程技术网

python继承中面临的问题

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):

正在尝试使用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):
    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教程。