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.
中一起删除
你的代码按照你编写的方式工作,我看不出这里有实际问题。
我有一个包,其中包含一个名为 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.
你的代码按照你编写的方式工作,我看不出这里有实际问题。