在类中包装全局变量(python)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在类中包装全局变量(python),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1082字,纯文字阅读大概需要2分钟。
内容图文
![在类中包装全局变量(python)](/upload/InfoBanner/zyjiaocheng/749/703e423531e94e519d5e3d76d7f3a468.jpg)
我是编程新手,最近学过python和面向对象编程的基础知识.我知道有很多全局变量通常是一个坏主意,我可以将它们全部放入一个类中.这是正确的方法吗?
class GameState(object):
def __init__(self):
self.variable1 = 1
self.variable2 = 2
self.list = [3, 4, 5]
g_state = GameState()
而且,如果我希望访问g_state中的变量,那么最好的方法是什么?
将g_state传递给需要访问的函数/类?
实施getter并调用它们?
直接使用g_state.variable1?
或者,还有更好的方法?
编辑:更具体地说,我正在尝试使用pygame在python中编写游戏,并且正在考虑将我的游戏状态变量放入类中,以便不会有一堆全局变量.我不确定如何以良好的设计访问这些变量,所以我以后不会遇到麻烦.
解决方法:
你是对的,太多的全局变量不是一个好主意.污染的全局命名空间可能会导致错误.
但是,不要为了它而把它们放到课堂上.如果你真的有那么多变量,你应该考虑将你的程序分成多个模块.
另外请理解,你不能像在JavaScript中那样在Python中创建全局变量.您的变量始终作用于模块下.
让我举一个例子来说明.模块a.py:
A = 42
模块b.py:
import a
print(A)
你得到了什么? NameError.为什么?因为变量A不是全局的,所以它在模块a下.您需要使用a.A来引用它.
没有必要在类下填充变量.它们位于模块下,它充当命名空间,并且没有任何问题.
内容总结
以上是互联网集市为您收集整理的在类中包装全局变量(python)全部内容,希望文章能够帮你解决在类中包装全局变量(python)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。