Я занимаюсь анализом и интроспекцией различных модулей, но я не хочу разбирать встроенные модули. Теперь нет специальных типов для встроенных модулей, таких как types.BuiltinFunctionType
, поэтому как это сделать?
>>> import CornedBeef
>>> CornedBeef
<module 'CornedBeef' from '/meatish/CornedBeef.pyc'>
>>> CornedBeef.__file__
'/meatish/CornedBeef.pyc'
>>> del CornedBeef.__file__
>>> CornedBeef
<module 'CornedBeef' (built-in)>
Согласно Python, модуль, по-видимому, встроен, если у него нет атрибута __file__
. Означает ли это, что hasattr(SomeModule, '__file__')
- это способ проверить, встроен ли модуль? Несомненно, это не совсем обычное явление для del SomeModule.__file__
, но есть ли более надежный способ определить, встроен ли модуль?