python不允许全局变量_关于python:如何避免全局变量

在阅读python文档和各种邮件列表时,我总是阅读一些看起来有点像教条的东西。全局变量应该避免像地狱一样,它们是糟糕的设计…好吧,为什么不呢?但在现实生活中,我不知道如何避免这种模式。

假设我有一个GUI,可以从主菜单加载几个文件。与加载的文件相对应的文件对象可以通过所有GUI使用(例如,图像查看器,它将显示图像,并且可以通过不同的对话框/插件对其执行各种操作)。

建造以下设计真的有什么问题吗?

menu.py——>文件将从此处加载

main.py-->此处可以使用加载的文件对象

dialog1.py-->或此处

dialog2.py->或那里

dialog3.py->或那里

环球公司

其中globals.py将存储一个字典,其键是加载文件的名称和相应文件对象的值。然后,从那里,需要这些数据的代码的各个部分将通过弱引用访问它。

对不起,如果我的问题看起来(或是)愚蠢,但你看到任何优雅或全球免费的选择吗?一种方法是将加载的数据字典封装在main.py的主应用程序类中,将其视为GUI的中央访问部分。但是,这也会带来一些复杂的情况,因为这个类应该可以从所有需要数据的对话框中轻松访问,即使它们是数据的直接子类。

非常感谢你的帮助

全局变量不是坏事。邪恶的是把它当作一个可变的变量。全局变量应尽可能保持静态和"不变"。如果你不得不改变globals.py中的字典内容,那就没用了。除此之外,因为阅读是可以的。

是的,全局"常量"是可以的,应该避免全局"变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值