区别:
用import modulexx/packagexx.moduleyy是导入某一模块,如果想引用模块的内容(class, method,variables...)必须用全名,即 [module_name].[attr_name]
用from modulexx/packagexx.moduleyy import zz 可以直接用,不需要加上[module_name],即 [attr_name]
eg:
import sys
print(‘================Python import module==========================‘);
print (‘The command line arguments are:‘)
for i in sys.argv:
print (i)
print (‘\n The python path‘,sys.path)
from sys import argv,path # 导入特定的成员
print(‘================python from import===================================‘)
print(‘path:‘,path) # 因为已经导入path成员,所以此处引用时不需要加sys.path
再比如:
>>> import datetime //import datetime 模块
>>> datetime.datetime.now() //调用classmethod now时,需要用[module_name].[class_name].[method_name]
datetime.datetime(2017, 1, 4, 1, 20, 52, 30699)
>>> datetime.now()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module ‘datetime‘ has no attribute ‘now‘
>>>
>>> from datetime import datetime //导入datetime模块的成员datetime(datetime 是一个datetime模块的类,这里类名和文件名(模块名)刚好相同,要区分)
>>> datetime.now() //调用classmethod now时,直接用[class_name].[method_name]
datetime.datetime(2017, 1, 4, 1, 23, 58, 887387)
>>>
python import, from xx import yy
原文:http://www.cnblogs.com/alexyuyu/p/6247083.html