Python 属性错误:';计划';对象没有属性';文件';
我想从函数Python 属性错误:';计划';对象没有属性';文件';,python,pyqt5,Python,Pyqt5,我想从函数Main()中放入img1文件,但我得到了 class Program: def Main(self): fname = QFileDialog.getOpenFileName() filepath = str(fname[0]) fileObject = filepath.split('/') file = fileObject[len(fileObject) - 1] def image(self,
Main()
中放入img1
文件,但我得到了
class Program:
def Main(self):
fname = QFileDialog.getOpenFileName()
filepath = str(fname[0])
fileObject = filepath.split('/')
file = fileObject[len(fileObject) - 1]
def image(self, Main):
img1 = cv2.imread(Main.file())
据我所知,您的代码中有一些奇怪的东西:
image
方法的,但它当前接收到一个Main
值。如果我错了,请纠正我,因为这纯粹是推测,但我认为您想调用程序的Main
方法。如果是这样的话,你就不是这样做的。您可以将其重构为:
class程序:
def主(自):
fname=QFileDialog.getOpenFileName()
filepath=str(fname[0])
fileObject=filepath.split(“/”)
file=fileObject[len(fileObject)-1]
#从方法签名中删除Main,因为它是程序中的一个方法
def图像(自我):
#从self对象调用Main
img1=cv2.imread(self.Main.file())
image
方法中的self.Main.file()
。由于Main
是一个方法,并且它没有另一个名为file
的方法,因此它将抛出AttributeError
。另一种纯粹的推测,但我认为您希望访问Main
方法中的变量文件。如果是这样的话,你就不是这样做的。不能访问另一个方法中的变量,但可以访问该方法返回的值。您可以重构Main
以返回所需的文件(并将其重命名为适当的名称,例如get\u file
):
class程序:
#将Main重命名为更具描述性的名称
def get_文件(自身):
fname=QFileDialog.getOpenFileName()
filepath=str(fname[0])
fileObject=filepath.split(“/”)
#返回它,以便我们可以在它之外访问此值
返回fileObject[len(fileObject)-1]
def图像(自我):
#访问get_文件返回的文件
#因为这是一个程序方法,所以使用self对象调用它
file=self.get_file()
#使用返回的值
img1=cv2.imread(文件)
class程序:
#将Main重命名为更具描述性的名称
def get_文件(自身):
fname=QFileDialog.getOpenFileName()
filepath=str(fname[0])
fileObject=filepath.split(“/”)
#可以删除使用-1作为最后一个值的索引
返回文件对象[-1]
def图像(自我):
file=self.get_file()
#可能您想返回下面的变量
返回cv2.imread(文件)
完整代码:
class程序:
def get_文件(自身):
fname=QFileDialog.getOpenFileName()
filepath=str(fname[0])
fileObject=filepath.split(“/”)
返回文件对象[-1]
def图像(自我):
file=self.get_file()
返回cv2.imread(文件)
您是否收到了错误信息?始终将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图,也不是指向外部门户的链接)进行讨论(不是评论)。还有其他有用的信息。我想i-ui.Image\u to\u hide()
应该是i=ui.Image\u to\u hide()
i fixi-ui.Image\u to\u hide()“final_test.py”,第127行,在Encrypt img1=cv2.imread(u.pixmap())AttributeError中:“NoneType”对象没有属性“pixmap”
@GaGoLL请提供一个@Eylanesc我更改并编辑代码
Traceback (most recent call last):
File "test.py", line 7, in image
img1 = cv2.imread(Main.file())
AttributeError: 'Program' object has no attribute 'file'