【问题标题】:Check if name is defined? [duplicate]检查名称是否已定义? [复制]
【发布时间】:2014-01-10 21:24:36
【问题描述】:

我想检查是否已经定义了名称“my_name”(这是我的类对象)。我如何在不使用 try-except 的情况下做到这一点:

try:
    if c:
        print("ok")
except NameError:
    print("no")

【问题讨论】:

    标签: python


    【解决方案1】:
    if 'c' in locals():
        print ('Ok')
    else:
        print('no')
    

    如果您需要检查全局,请改为使用 globals()

    【讨论】:

      【解决方案2】:

      如果您不想使用try/except,可以查找locals()globals()。这样的检查看起来像:

      if locals().get('c', globals().get('c')) is None:
          print "no"
      else:
          print "ok"
      

      if 条件中的调用将首先查找局部变量,如果在那里找不到您的变量,则将查找全局变量。如果在其中一个或另一个中找不到变量,则返回 None

      【讨论】:

        猜你喜欢
        • 2019-10-14
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 2018-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多