[英]Variable in for loop not accessed by Pylance
我正在 python 中创建一个应用程序,该应用程序可以访问 excel 文件以读取和写入数据。 Excel 文件有工作日,用户将读取或写入它们旁边的单元格。 下面,我写了一些循环来检查用户是否未保存一些更改。 如果某一天的单元格有未保存的更改,则应用程序内的 label 会更改以将其指出给用户。
喜欢:星期一->星期一*
“kvlabel”,由于某种原因保持较深的颜色,将鼠标悬停在它上面表明 Pylance 没有访问它。 我更改了它的名称和 position 但它没有任何区别。
daytexts = [
self.root.get_screen("weeklywin").ids.mon_text.text,
self.root.get_screen("weeklywin").ids.tue_text.text,
self.root.get_screen("weeklywin").ids.wed_text.text,
self.root.get_screen("weeklywin").ids.thu_text.text,
self.root.get_screen("weeklywin").ids.fri_text.text
]
cells = [e4, e10, e16, e22, e28]
daylabel = ["mon_label", "tue_label", "wed_label", "thu_label", "fri_label"]
daylabelkv = [
self.root.get_screen("weeklywin").ids.mon_label.text,
self.root.get_screen("weeklywin").ids.tue_label.text,
self.root.get_screen("weeklywin").ids.wed_label.text,
self.root.get_screen("weeklywin").ids.thu_label.text,
self.root.get_screen("weeklywin").ids.fri_label.text
]
justday = ["Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma"]
for day, cell, label in zip(daytexts, cells, daylabel):
if day != cell and label not in self.excel_unsaved_label:
self.excel_unsaved_label.append(label)
elif day == cell and label in self.excel_unsaved_label:
self.excel_unsaved_label.remove(label)
if self.excel_unsaved_label:
self.show_excel_leave_warn()
for label2, kvlabel, tehday in zip(daylabel, daylabelkv, justday):
if label2 in self.excel_unsaved_label:
kvlabel = tehday+"*"
else:
kvlabel = tehday
else:
self.root.current = caller
就像@slothrop 建议的那样,我从daylabelkv
中删除了.text
:
daylabelkv = [
self.root.get_screen("weeklywin").ids.mon_label,
self.root.get_screen("weeklywin").ids.tue_label,
self.root.get_screen("weeklywin").ids.wed_label,
self.root.get_screen("weeklywin").ids.thu_label,
self.root.get_screen("weeklywin").ids.fri_label]
并像这样更改循环:
for label2, i, tehday in zip(daylabel, range(len(daylabelkv)), justday):
if label2 in self.excel_unsaved_label:
daylabelkv[i].text = tehday+"*"
它做我现在想要的。 谢谢大家的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.