python is instance () - как сделать так, чтобы классы отличались от встроенных - PullRequest
0 голосов
/ 06 июня 2018

Чтение документации для isinstance() и поиск примеров в Интернете, примеры только иллюстрируют, как использовать ее со встроенными классами, такими как: str, int, float, long

У меня есть код, где переменная myObj.location будет либо None если он еще не установлен, быть пустым str, если функция не может вернуть значение или если она выполнена успешно, переменная будет содержать объект типа: geopy.location.Location

Toпроверить, что содержит этот объект, я мог бы написать код, подобный этому: isinstance(myObject.location, (type(None), str))

Если False, тогда я знаю, что он не смог вернуть объект Location.Если True, то он либо содержит None, либо str.

. Есть ли способ напрямую сказать ему, проверять, является ли объект geopy.location.Location, возвращающим True, если проверка верна?

Мой код работает с тестом False, но мне нравится читаемость того, что я могу сказать True для объекта типа geopy.location.Location, который может быть построен или не создан впервые вмомент теста isinstance.

1 Ответ

0 голосов
/ 06 июня 2018

isinstance () работает для пользовательских классов.

>>> class Foo: pass
...
>>> foo = Foo()
>>> isinstance(foo, Foo)
True
>>> isinstance(foo, str)
False
>>>
...