Я пытаюсь реализовать этот повторяющийся блок кода ниже, создав объекты с именем, выбранным из списка, вместо того, чтобы создавать объекты и передавать экземпляр повторно.python создает объекты, ссылаясь на имя объекта через переменную, создавая объекты из списка
class waittill:
def __init__(self,path):
self.imagepath = os.path.join("C:\python\python_projects\pyautogui\images", path)
loaded=waittill("loaded.png")
agree=waittill("agree.png")
firstname=waittill("firstname.png") #This works absolutely fine
loginid=waittill("loginid.png") #I wish repetition could be avoided
password=waittill("password.png")
loginbutton=waittill("loginbutton.png")
customerlist=waittill("customerlist.png")
loginpage=waittill("loginpage.png")
customerinfo=waittill("customerinfo.png")
profile=waittill("profile.png")
возможно написать более элегантный код, как езда на велосипеде через список для создания объектов
images=["loaded.png","agree.png","firstname.png","loginid.png","password.png","loginbutton.png","logout.png","middlename.png","lastname.png","submit.png",\
"customerlist.png","loginpage.png","customerinfo.png","profile.png"]
for each_image in images:
a,b=each_image.split(".")
b=(a+"."+b)
image=b.strip()
name=a.strip()
name=waittill(image) #this is where the problem lies, its repeatedly naming the object *name* and not say *loaded* or *agree*.
Я не уверен, каков ваш вопрос. Что не так с кодом, который вы написали? –
использовать словарь – BlackBear
Создается объект имени «a» класса «waittill» вместо создания объекта. Я неявно ссылаюсь на то, что a = загружен. @DanielRoseman. –