#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()