我一直遇到一个问题,我必须检查对象是否已为类实例化或是否已创建变量。
例如,如果从未创建变量frog
bool(frog)
我得到一个未定义的错误-我可能应该在那里使用type(frog)
,但是同样的错误bool(frog)
听起来更有趣。相反,如果我写
'frog' in dir()
我将得到False
作为输出。很好,但是更常见的是,我遇到了对象的问题,因为我有条件地实例化它们,但我不知道它们的名字(就像它们在列表中一样)。考虑一个来自
class beatle(object):
def __init__(self, name):
self.name = name
b1 = beatle('Ringo')
现在,如果仅在某些情况下在我的代码的很远的部分中发生了这种情况,而我不知道object
被称为b1
,该如何检查是否有一个实例? beatle
曾经发生?如果我检查dir()
,就无法通过名称分辨出任何成员dir()
实际上是披头士乐队-还是可能是披头士乐队列表。对我来说,问题是dir()
是<class str>
的列表,因此我认为它不能满足我的需求。我考虑过只在创建对象的任何条件中添加一些bool
类型指示器,但这似乎太“硬汉”了。
编辑:这里有个大修改,因为自从上一篇文章以来我一直在改进编码,并且我在努力避免禁止提问,因此我对此表示歉意,以免混淆任何人的原始评论。