我在Python中创建了一个相当简单的文本编辑器控制台应用程序,但我在开始时遇到了问题。这是一个相当简单的代码:
if txtrue == 0 :
txtrue = Empty
if txtrue == "Present" :
svd = "one"
else :
svd = "no"
如果txtrue
已经存在,我试图定义txtrue
。我该怎么做?
txtrue
只是定义文本是否存在于不同的变量中。
答案 0 :(得分:2)
您可以检查globals
中是否定义了名称并对其采取行动:
if not 'name' in globals():
name = 'foo'
else:
print(name)
同样,如果你在一个函数中,你也可以偷看locals
。我同意其中一条评论;这种缺乏控制似乎很奇怪。
答案 1 :(得分:1)
取决于变量是local
还是global
。 Python维护着两个集合:locals()
和globals()
,它们包含已定义变量的名称:
if 'txtrue' not in locals():
#define txtrue
txtrue = None
表示局部变量,当然globals()
表示全局变量。
但实际上你的代码看起来很糟糕。你也可以给它一个初始值,如None
,并测试它是否还有None
。
答案 2 :(得分:0)
try:
txtrue
except NameError:
txtrue = "Present"
这应该可以完成你想要做的事情。
答案 3 :(得分:0)
尝试:
if txtrue not in locals():
txtrue = None
除了NameError:
txtrue = "Present"