Python: ошибка имени: имя не определено, даже если оно определено

#python

#python

Вопрос:

У меня есть приведенный ниже код. Когда я пытаюсь запустить его, я получаю сообщение об ошибке, приведенное ниже. Как мне решить эту проблему? Заранее спасибо за помощь 🙂

     imageList = [f for f in listdir(imageFolder) if isfile(join(imageFolder, f))]
NameError: name 'imageFolder' is not defined
 
 class TestItem:
    current_milli_time = None
    Config = configparser.ConfigParser()
    Config.read("sample.ini")

    accessKey = Config.get("project", "accessKey")
    deploymentID = Config.get("project", "deploymentID")
    imageFolder = Config.get("test", "imageFolder")

    imageList = [f for f in listdir(imageFolder) if isfile(join(imageFolder, f))]
    def ready_upload(self):

if __name__ == '__main__':
    ItemTest= TestItem()
    ItemTest.ready_upload()

 

Комментарии:

1. Это нужно делать только в том случае, если вы обращаетесь к переменной извне класса.

2. Где тело ready_upload ?

Ответ №1:

Возможно, вы пытаетесь написать конструктор для своего класса. В этом случае вам просто нужно поместить код конструктора в специальный метод __init__() .

 class TestItem:
    def __init__(self):
        self.current_milli_time = None
        Config = configparser.ConfigParser()
        Config.read("sample.ini")

        self.accessKey = Config.get("project", "accessKey")
        self.deploymentID = Config.get("project", "deploymentID")
        self.imageFolder = Config.get("test", "imageFolder")

        self.imageList = [f for f in listdir(self.imageFolder) if isfile(join(self.imageFolder, f))]

    def ready_upload(self):
        # do something with self.imageList, etc.

if __name__ == '__main__':
    ItemTest = TestItem()
    ItemTest.ready_upload()