Я занимаюсь синтаксическим анализом и самоанализом различных модулей, но я не хочу анализировать встроенные модули. Сейчас, не существует специального типа для встроенных модулей, например 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 __
, но есть ли более надежный способ определить, является ли модуль встроенным?