鱼C论坛

 找回密码
 立即注册
查看: 3748|回复: 4

[已解决]关于全局变量的定义问题

[复制链接]
发表于 2023-6-29 23:10:53 | 显示全部楼层    本楼为最佳答案   
代码中定义了一个全局变量`code_data`,但在`on_check_clicked`方法中的引用提示未定义的错误。这是因为在`on_select_clicked`方法中定义的局部变量`code_data`与全局变量`code_data`命名相同,导致在`on_check_clicked`方法中无法访问到全局变量。

要解决这个问题,你可以在`on_select_clicked`方法内将`code_data`声明为全局变量,使用`global`关键字进行声明,这样就可以在其他方法中正常引用了。

修改代码如下:

  1. @Slot()
  2. def on_select_clicked(self):
  3.     import tkinter as tk
  4.     from tkinter import filedialog as fd

  5.     root = tk.Tk()
  6.     root.withdraw()

  7.     filename = fd.askopenfilename(filetypes=[('Excel Files', '*.xlsx')])
  8.     self.ui.excelfile.setPlaceholderText(filename.replace('/','\\'))
  9.     ws = openpyxl.load_workbook(filename)['Sheet1']
  10.     global code_data  # 将局部变量声明为全局变量
  11.     code_data = dict(list(ws.iter_rows(values_only=True)))
复制代码

通过添加`global code_data`语句,将`code_data`声明为全局变量,就可以在其他方法中正常引用了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-30 07:09:05 From FishC Mobile | 显示全部楼层
hynet1024 发表于 2023-6-29 23:36
受教了,居然忽视了变量赋值就也是定义,谢谢!

不客气
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-1 23:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表