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

python AttributeError not finding a class within a module I am importing

我有一个包,其中包含一个名为 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'

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

我仍然无法重现您遇到的问题。

我试过像这样复制您声明的文件夹结构:

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

play_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 的缩进,或者如果我将它从 class.

中一起删除

你的代码按照你编写的方式工作,我看不出这里有实际问题。