类不会将自变量传递给它内部的函数

问题描述 投票:0回答:1

我是一个新手程序员我正在定义这个简单的类但我收到以下错误我无法理解我做错了什么

from PIL import Image
class PreProcessing(object):
    def __init__(self,NAME):
        super(PreProcessing,self).__init__()
        self.name = NAME
        self.newsize = 512
        PATH = '/home/alireza/Desktop/ssd'
        self.pathImage =  PATH + '/' + self.name + '.jpg'
        self.pathAnn = PATH + '/' + self.name + '.xml'



    def image_loader(self):
        print(self.pathImage )

当我打电话给NAME = '002498'

PreProcessing.image_loader(NAME)

,我得到这个错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-38-5747710fa005> in <module>()
      3 sizee = [1, 3, 375, 500]
      4 # A= PreProcessing(NAME)
----> 5 PreProcessing.image_loader(NAME)

<ipython-input-37-5f788218f7e3> in image_loader(self)
     10 
     11     def image_loader(self):
---> 12         print(self.pathImage )

AttributeError: 'str' object has no attribute 'pathImage'
python python-3.x
1个回答
1
投票

正如@kindall在他的评论中所说,你不是在做一个班级的实例。如果你这样设置它会工作,创建类PreProcessing()的“hello”对象:

from PIL import Image
class PreProcessing(object):
    def __init__(self,NAME):
        super(PreProcessing,self).__init__()
        self.name = NAME
        self.newsize = 512
        PATH = '/home/alireza/Desktop/ssd'
        self.pathImage =  PATH + '/' + self.name + '.jpg'
        self.pathAnn = PATH + '/' + self.name + '.xml'



    def image_loader(self):
        print(self.pathImage )

NAME = "12345"

hello = PreProcessing(NAME)
© www.soinside.com 2019 - 2024. All rights reserved.