Python中未初始化的值?

Joa*_*nge 2 python

什么是Python中未初始化的值,所以我可以比较一下是否初始化了什么,比如:

val

if val == undefined ?
Run Code Online (Sandbox Code Playgroud)

编辑:添加了一个伪关键字.

编辑2:我想我没有说清楚,但是说val已经存在,但没有任何内容.

重复:只是在Python中声明一个变量?

phi*_*hag 8

会抛出NameError异常:

>>> val
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'val' is not defined
Run Code Online (Sandbox Code Playgroud)

您可以捕获或使用'val' in dir(),即:

try:
    val
except NameError:
    print("val not set")
Run Code Online (Sandbox Code Playgroud)

要么

if 'val' in dir():
    print('val set')
else:
    print('val not set')
Run Code Online (Sandbox Code Playgroud)


Joe*_*erg 5

在python中,变量既可以引用对象,也可以不存在.如果它们不存在,您将获得NameError.当然,他们可能提到的对象之一是None.

try:
   val
except NameError:
   print "val is not set"


if val is None:
   print "val is None"
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 5

除非为其分配值,否则名称不存在.有无,通常代表没有可用的价值,但它本身就是一个价值.