“AttributeError:创建类实例时,模块”“usbiss”“没有属性Aclass”“。”

2024-06-16 13:39:41 发布

您现在位置:Python中文网/ 问答频道 /正文

试图写一个python包,我不能在我的一个源文件中创建一个类的实例。你知道吗

包装布局为:

-packagedir
----README.md
----setup.py
----packagename
--------__init__.py
--------package.py
--------modules
------------file1.py
------------file2.py

在packagename中的init.py中:

from . modules import file1
from . modules import file2

文件file1.py包含一个类:

class File1():
    def __init__(self):
        self.val = 0
        # Other methods and such

文件file2.py包含一个类:

class File2():
    def __init__(self):
        self.type = 0
        # Other methods and such

而且在包.py我的课程是这样的:

class Aclass(file1.File1, file2.File2):
    def __init__(self):
        # nothing important in here yet

我构建并安装了如下程序包:

python3 setup.py sdist
sudo pip3 install dist/package-0.1.tar.gz

现在我创建一个名为测试.py把下面的东西放进去:

import package
iss = package.Aclass()

运行测试文件时,出现以下错误:

AttributeError: module 'usbiss' has no attribute 'Aclass'

我不明白为什么python不让我创建Aclass类的实例,并认为我正在访问一个属性。我确信我的进口报关单有什么根本性的问题,但我不知道是什么问题。如何更正此问题,以便创建Aclass实例并使用其方法?你知道吗

谢谢。你知道吗


Tags: 文件实例pyimportselfmodulespackageinit
2条回答

这里的问题是我导入的是包本身,而不是包中的模块。我在中更改了导入测试.py收件人:

from package import package

这解决了我的问题。你知道吗

您确定正确地处理了import,并且没有引入任何循环依赖项吗?
此外:

def __init__(file1.File1, file2.File2):
def __init__():

您的init方法缺少self。它们应该是:

def __init__(self, file1.File1, file2.File2):
def __init__(self):

相关问题 更多 >