鱼C论坛

 找回密码
 立即注册
查看: 1137|回复: 1

[已解决]我这是用了一个假的global吗?

[复制链接]
发表于 2020-11-26 13:34:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Administrator.WIN7U-20190717R\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "C:\Users\Administrator.WIN7U-20190717R\Desktop\编程\安装包制作工具\Alpha 0.1\Main.py", line 35, in 添加
    w7.insert(w5.get(),END)
NameError: name 'w7' is not defined
import zipfile
import os
from tkinter import *

ver = "Alpha 0.1"
main = Tk()
main.title("安装包制作工具 "+ver)

def start():
  global w1
  global w2
  global w3
  global main
  w1.grid_forget()
  w2.grid_forget()
  w3.grid_forget()

  name = w1.get()
  
  try:
    os.mkdir(name)
  except:
    pass

  w5 = Entry(main)
  w5.grid(row = 0,column = 0)

  w7 = Listbox(main)
  w7.grid(row = 1,column = 0)

  def 添加():
    global w5
    global w7
    
    w7.insert(w5.get(),END)

  w6 = Button(main,text = "添加",command = 添加)
  w8 = Label(main,text = "请在\n输入\n框中\n输入\n目标\n绝对\n路径")

  w6.grid(row = 0,column = 1)
  w8.grid(row = 1,column = 1)
  
w1 = Entry(main)
w2 = Label(main,text = "请输入项目名称:")
w3 = Button(main,text = "开始",command = start)

w1.grid(row = 0,column = 1)
w2.grid(row = 0,column = 0)
w3.grid(row = 0,column = 2)

main.mainloop()
最佳答案
2020-11-26 13:47:54

你 w7 和 w5 本身定义时候就是局部变量

所以不能通过 global 来声明,你应该先在全局设置两个值,例如:
w5,w7 = None,None

然后在 start 函数进行声明(这里只拷贝部分代码):
def start():
    global w1
    global w2
    global w3
    global w5
    global w7
    global main

内部函数添加可以改成这样:
def 添加():
    w7.insert(w5.get(), END)

Ps:建议不要用中文设置为变量名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-26 13:47:54 | 显示全部楼层    本楼为最佳答案   

你 w7 和 w5 本身定义时候就是局部变量

所以不能通过 global 来声明,你应该先在全局设置两个值,例如:
w5,w7 = None,None

然后在 start 函数进行声明(这里只拷贝部分代码):
def start():
    global w1
    global w2
    global w3
    global w5
    global w7
    global main

内部函数添加可以改成这样:
def 添加():
    w7.insert(w5.get(), END)

Ps:建议不要用中文设置为变量名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 21:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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