Ищу метод в стандартной библиотеке python
В моей стандартной библиотеке Python (Python 2.7
), Я ищу конкретные методы в модулях.
Например, если я открою re.py
Я могу видеть, что есть конкретные методы, такие как findall
,search
и т.д. То же самое очевидно, когда я делаю dir(re)
, Я ясно вижу вышеупомянутые методы.
Точно так же, когда я делаю dir(os)
существует метод system
, который я обычно называю, используя os.system(cmd_name)
,
Но когда я ищу этот метод под os.py
, не существует. Я делаю что-то неправильно? Пожалуйста, руководство
1 ответ
Эта функция не определена в os
модуль, так что вы не найдете определение в os.py
, Импортируется в os
из другого модуля; какой модуль будет зависеть от вашей операционной системы. Ты можешь проверить:
>>> os.system.__module__
'nt'
Здесь вы можете видеть это, так как я на Windows, os.system
исходит от nt
модуль.
Вы, вероятно, найдете это os.system.__module__
либо 'nt'
или же 'posix'
, представляющий либо nt
или же posix
модуль. Тогда возникает вопрос: где эти модули определены? Нет никаких nt.py
или же posix.py
,
Оказывается, эти модули реализованы на C, в Modules/posixmodule.c
, Да, nt
модуль posixmodule.c
и так posix
модуль. Это странно.