我试图通过创建名称从列表中获取名称而不是创建对象和重复传递实例的对象来实现此重复块代码。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
类“waittill”的名称“a”的对象正在创建,而不是创建对象,我隐式引用了一个ie a = loaded @DanielRoseman –