使用Python 'as'关键字为numpy设别名后无法调用原模块名的问题
问题原因与逻辑解释
核心原因
当你执行import numpy as np时,Python确实会把整个numpy库加载到内存中,但只会在当前代码的命名空间里创建np这个名称,用来指向numpy库对象,并不会把numpy这个原名称也添加到命名空间里。这就导致你后续写numpy.array()时,Python找不到名为numpy的标识符,自然会抛出NameError。
两种写法的差异
- 报错代码的问题:
import numpy as np ar = numpy.array([1,2,3,4,5]) # 命名空间里没有'numpy'这个名字,触发报错 - 正常运行的代码:
import numpy as np ar = np.array([1,2,3,4,5]) # 'np'已经绑定到numpy库,能正常调用方法
正确的import逻辑
Python的import语法有几种常见用法,对应不同的命名空间绑定规则:
import 库名:会把库名这个标识符导入当前命名空间,直接用库名.方法()调用。import 库名 as 别名:仅把别名导入当前命名空间,只能用别名.方法()调用,原库名不会出现在命名空间中。- 如果确实需要同时用原库名和别名,可以这么写(但实际开发中没必要,选一种调用方式即可):
import numpy import numpy as np # 此时numpy和np都能用来调用库方法
内容的提问来源于stack exchange,提问作者codemaivanngu
相关产品推荐
相关产品推荐

