python - 如何检查全局变量是否存在,如果不存在则将其定义为全局变量?
问题描述
我想做:
if var not in globals():
global var
var = -1
或者
try : var
except NameError :
global var
var = -1
问题是 :
global var
^
SyntaxError: name 'var' is used prior to global declaration
那么可以做些什么来达到类似的效果呢?
编辑 :
这不是在模块级别,而是在函数中。该变量应该存储函数使用和更新的位置值,但需要在调用之间保持不变。
我已经知道上面的代码是不好的做法,我同意,并要求那些同意建议替代的“好的做法”方法,如果可能的话。
编辑 2:
这个问题是帮助我解决我之前的问题所必需的。在那里,obj_cnt
每次调用都会重置,通过“索引”(抽象)访问腌制文件中的对象的函数会出错,因为我试图通过按排序顺序查询索引来避免不必要的查找和读取。
以上应该清除“为什么?” 部分。
编辑 3:
我最终不需要做这些令人费解的事情。我通过使用类解决了上述问题。
不过,感谢所有在这里帮助我的人。
解决方案
更改全局变量被认为是不好的做法(请参阅为什么全局变量是邪恶的?),但为了知识起见,您可以这样做:
if 'var' not in globals():
globals()['var'] = var
var = -1
对于你想要做的事情。
推荐阅读
- python - Jupyter Notebook - ModuleNotFoundError
- elasticsearch - Elasticsearch 按关键字搜索并提升
- javascript - How to configure Jest testing framework for use in Nuxt.js?
- javascript - Vue - wrap text selection with span and make style two-way binding?
- javafx - 具有 JFX 11 导入的场景生成器
- android - Recycler View 显示带有空值的卡片
- php - php保存数组多维
- multithreading - 如何将 2 个大型 csv 数据集的一列与 col1+col2 作为键进行比较?
- reactjs - react.js 中的关键警告
- python - 为什么python3命令显示找不到它的错误