当你导入后打电话os
,是因为它是一个模块打印到文件路径。相反,import
是一个命题:
>>> import math
>>> math
<module 'math' from '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/math.so'>
>>> import
File "<stdin>", line 1
import
^
SyntaxError: invalid syntax
>>>
万一你觉得你需要知道,这里有其他语句称为空当做类似的事情:
>>> with
File "<stdin>", line 1
with
^
SyntaxError: invalid syntax
>>> yield
File "<stdin>", line 1
SyntaxError: 'yield' outside function
>>> return
File "<stdin>", line 1
SyntaxError: 'return' outside function
>>> continue
File "<stdin>", line 1
SyntaxError: 'continue' not properly in loop
>>> import
File "<stdin>", line 1
import
^
SyntaxError: invalid syntax
>>> raise
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
>>> assert
File "<stdin>", line 1
assert
^
SyntaxError: invalid syntax
>>> del
File "<stdin>", line 1
del
^
SyntaxError: invalid syntax
>>> break
File "<stdin>", line 1
SyntaxError: 'break' outside loop
>>>
你不能。您使用的技巧适用于__modules__,但导入不是模块,而是一种声明。 – dano
@dano你不可能,或者你不能按照我的方式尝试? – neuronet
我相信'import'是用C实现的,所以你需要找到实际Python源代码的位置。但是,从Python 3.1开始,有一个'importlib'模块,它提供了一个纯Python的'import'实现:https://docs.python.org/3/library/importlib.html – dano