Я ищу способ поймать все функции типа std в Python (int, str, xrange и т. Д.).Проверьте, является ли переменная стандартной функцией в Python
В принципе, все, что имеет представление, которое выглядит как <type X>
вместо <class X>
. Вот полный список всех типов StD в Python 2: https://docs.python.org/2/library/stdtypes.html
Если я использую isinstance(X, type)
или type(X) == type
, он также перехватывает все классы, но я только хочу, чтобы обнаружить функции типа (или какие-либо имена, назначенные к одному из них (т.е. my_int = int
).
Единственная мысль, которая приходит на ум моей проверки, если X.__name__
в __builtins__
, но я не уверен, что это чистое и не правильное решение.
Не могли бы вы объяснить, что вы на самом деле пытаетесь достичь, и почему? – jonrsharpe
Вы можете указать их явно ... 'isinstance (x, (list, dict, set, unicode, str, ...))' или 'x in {list, dict, set, unicode, str, ... } '. Из любопытства, _why_ имеет значение, если что-то это встроенный тип или нет? – mgilson
Я мог бы перечислить их всех, так как есть конечное число, но я надеялся избежать этого. Я пытаюсь поймать любую примитивную функцию типа. Я не думаю, что в Python можно создать более примитивные типы? Так что единственные, которые когда-либо будут существовать, - это встроенные. Все остальное будет классом. –