请帮忙看下这段程序变量使用,万分感谢!
如图,是一个tkinter代码片段,是可以正常运行的,我的问题是:
19行调用了一个selection方法,这个方法中使用了name_var变量,但是这个name_var变量在22行才被定义,那在前面调用的使用怎么没报错呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如图,是一个tkinter代码片段,是可以正常运行的,我的问题是:
19行调用了一个selection方法,这个方法中使用了name_var变量,但是这个name_var变量在22行才被定义,那在前面调用的使用怎么没报错呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
我没有用过这个tkinter库,不过看你的代码在19行并没有调用函数selection,只是当做一个参数传入其他函数中,你可以尝试在19行之前调用selection(),如果不传参肯定会报错的
我并没有深入了解过 tkinter, 但是可以看出来
selection
在这里应该是一个事件处理的回调函数, 响应一个 Combobox 被选中的事件, 所以它的执行实际上是滞后的.由于 Python 是解释运行(产生的.pyc是平台无关的字节码), 所以实际上在运行时,
selection
函数才会去访问name_var
这个全局变量, 所以确实是可用的.你可以自己运行这两个简化的例子:
只是这种风格代码的确写的不好, 在绝大多数语言中, 使用全局变量都不是一个良好的习惯. (很容易被不清楚的地方意外引用, 所以不建议使用)
19行不是调用吧,只是传入了函数的引用,并没有调用