Я продолжаю сталкиваться с проблемой, когда мне приходится проверять, был ли создан экземпляр объекта для класса или была ли создана переменная.
Если, например, переменная 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
в любое условие, где создается объект, но это выглядит слишком жестко.
РЕДАКТИРОВАТЬ: Здесь было большое редактирование, потому что я улучшал свое кодирование со времени моего последнего поста, и я стараюсь избежать запрета на вопросы, поэтому я прошу прощения, если это запутывает кого-либооригинальные комментарии.