[英]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.