from moduleA import * 语句和import moduleA 的区别是:
- from moduleA import * 语句会将moduleA模块中的所有内容(函数、变量、类等)直接导入到当前模块的命名空间中,这样就可以直接使用它们,而不需要加上模块名的限定。
- import moduleA 语句会将moduleA模块作为一个对象导入到当前模块的命名空间中,这样就需要使用moduleA.的方式来访问它们。
例如,假设moduleA中有一个函数f和一个变量x,那么:
- 使用from moduleA import * 语句后,可以直接调用f()和x,而不需要写成moduleA.f()和moduleA.x。
- 使用import moduleA 语句后,必须使用moduleA.f()和moduleA.x来调用函数和变量。
一般来说,推荐使用import moduleA 语句,避免使用from moduleA import *,因为这样可以使你的程序更加易读,也可以避免名称冲突。
from … import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
from modname import name1[, name2[, ... nameN]]
例如,要导入模块 fibo 的 fib 函数,使用如下语句:
>>> from fibo import fib, fib2
>>> fib(500) #直接调用
1 1 2 3 5 8 13 21 34 55 89 144 233 377
这个声明不会把整个fibo模块导入到当前的命名空间中,它只会将fibo里的fib函数引入进来。