Как проверить, является ли переменная допустимым классом или типом? Я хочу его проверить, прежде чем передавать его в isinstance()
Есть ли способ, кроме try catch
? Я использую python2Как определить, является ли переменная допустимым классом или типом в python?
ответ
Что касается моего комментария:
классов и типов являются экземплярами type
, так сказать. Вот почему это будет работать:
>>> class foo():
pass
>>> t = foo
>>> t
<class '__main__.foo'>
>>> isinstance(t,type)
True
EDIT - Это работает для Python3.x
На Python 2.x класс должен быть новый стиль один (т.е. наследуется от object
)
class foo(object):
pass
Я боюсь, что ваш ответ работает только на Python3. OP использует Python 2.7 – Pynchia
@ Pynchia, это справедливый момент, который я всегда забываю учитывать. Слава богу за обман. отредактирован, чтобы явно указать это. –
BTW, OP говорит о переменных/экземплярах, я понимаю, а не классы. т. е. 't = foo()'. И в этом случае вышеприведенное решение выходит из строя под python 2 (либо с использованием классов старого или нового стиля. Кстати, почему вы используете parens в объявлении класса?) – Pynchia
- 1. Как определить, является ли переменная классом или объектом
- 2. Как определить, является ли переменная допустимым ключом массива?
- 3. Как определить, является ли System.Type настраиваемым типом или типом Framework?
- 4. Как определить, является ли данный объект заданным типом в Python?
- 5. Как определить, является ли переменная python строкой или списком?
- 6. Определить, является ли аргумент классом или протоколом
- 7. python: как определить, является ли переменная массивом или скаляром
- 8. .NET: Как определить, является ли тип допустимым?
- 9. Проверьте, является ли переменная допустимым элементом узла
- 10. Как проверить, является ли переменная конкретным классом в python?
- 11. Python-Как найти, является ли переменная конкретным классом?
- 12. Как определить, является ли объект типом значения
- 13. Как определить, является ли тип типом коллекции?
- 14. Как определить, является ли объект типом Eigen?
- 15. Есть ли способ скомпилировать время, если переменная является классом, структурой или базовым типом в C++?
- 16. Является ли это допустимым типом проверки, если аргумент является целым?
- 17. Как определить, является ли тип статическим классом?
- 18. Как определить, является ли ресурс/объект классом или экземпляром
- 19. Является ли «корневым типом» или просто типом?
- 20. Как определить, является ли переменная функцией в Python?
- 21. В KRL, как определить, является ли переменная массивом или хешем?
- 22. C++ определяет, является ли шаблонная переменная классом или только встроенным типом?
- 23. Как определить, является ли переменная массивом
- 24. Как определить, не является ли переменная «пробелом»
- 25. Нужно найти, является ли данная переменная экземпляром или классом
- 26. Как определить, является ли строка допустимым выражением Java в Java?
- 27. Класс Doctrine не является допустимым сущностью или суперклассифицированным классом
- 28. «Число» не является допустимым типом данных MySQL?
- 29. Определить, является ли PHP_CodeSniffer Sniffing абстрактным (или окончательным) классом
- 30. Как определить, является ли переменная массивом объектов или нет?
Как бы переменная не имела никакого действительного типа? – timgeb
Разве это не значит, что вы бы использовали isinstance? –
скажите, например, если я делаю isinstance (a, {}), я получу ошибку типа. Я хочу убедиться, что второй параметр, который я передаю isinstance, действителен. –