python AttributeError在我导入的模块中找不到类

2024-09-22 10:16:42 发布

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

我有一个包,其中包含一个名为rigfuncs3.py的模块

SDNpackage/
    __init__.py
    rigfuncs3.py

代码:

class rig():

    def __init__(self, rigNumber, leftNozPlate, rightNozPlate, bottomNozPlate, row1_centre_focus):

        self.rigNumber = rigNumber
        self.leftNozPlate = leftNozPlate
        self.rightNozPlate = rightNozPlate
        self.bottomNozPlate = bottomNozPlate
        self.row1_centre_focus = row1_centre_focus

    def getRigName(self):
        return self.rigNumber

名为play_04.py的脚本从包中导入模块rigfuncs。 代码:

from SDNpack2 import rigfuncs3

instantiation = rigfuncs3.rig(1,1000.0, 2000.0, 3000.0, 4000.0)
print(dir(instantiation))

rig_num = instantiation.getRigName()

运行play_04时,我得到错误信息:

AttributeError:“rig”对象没有属性“getRigName”

我不知道为什么,有什么想法吗


Tags: 模块pyselfinitfocusrow1rigcentre
1条回答
网友
1楼 · 发布于 2024-09-22 10:16:42

我仍然无法复制你的问题

我试图复制您声明的文件夹结构,如下所示:

C:.
│   play_04.py
│
└───SDNpack2
        rigfuncs3.py
        __init__.py     < - empty file

rigfuncs3.py:

class rig():
    def __init__(self, rigNumber, leftNozPlate, rightNozPlate, bottomNozPlate, row1_centre_focus):
        self.rigNumber = rigNumber
        self.leftNozPlate = leftNozPlate
        self.rightNozPlate = rightNozPlate
        self.bottomNozPlate = bottomNozPlate
        self.row1_centre_focus = row1_centre_focus

    def getRigName(self):
        return self.rigNumber

播放\u 04.py:

from SDNpack2 import rigfuncs3

instantiation = rigfuncs3.rig(1, 1000.0, 2000.0, 3000.0, 4000.0)
print(instantiation)
print(instantiation.__dict__)

rig_num = instantiation.getRigName()
print(rig_num)

我将对dir(instantiation)的调用更改为instantiation.__dict__,以便只显示对象的属性,而不是所有内置变量

输出:

<SDNpack2.rigfuncs3.rig object at 0x02B1E628>
{'rigNumber': 1, 'leftNozPlate': 1000.0, 'rightNozPlate': 2000.0, 'bottomNozPlate': 3000.0, 'row1_centre_focus': 4000.0}
1

我可以复制问题本身的唯一方法是,要么更改getRigName的缩进,要么将其全部从类中删除

你的代码按照你的编码方式工作,我看不出有什么实际问题

相关问题 更多 >