除了内置对象,标准库对象和扩展库对象在使用前都需要用 import 导入。
一、导入模块
(1)基本语句:import 模块名 [as 模块别名]
导入模块后就可以使用模块中的类、函数、对象等东东了,不过在使用时要加上“模块名.”这个前缀。为了简化前缀,在导入时可以用“as 模块别名”的方式,给模块取个别名。不过取了别名之后,原名就失效了。例如:
import datetime
d = datetime.date.today()
t = datetime.datetime.now()
print(d,t) # 2020-02-03 2020-02-03 11:35:20.937157
print(dir(datetime)) # 查看模块中的所有对象:['MAXYEAR',... 'tzinfo']
print(dir(datetime.date)) # 查看类中所有成员:['__add__',... 'weekday', 'year']
import datetime as dt # 给datetime取个别名
d01 = dt.date.today()
t01 = dt.datetime.now()
print(d01,t01) # 2020-02-03 2020-02-03 11:37:21.739067
d02 = datetime.date.today() # 原名失效:NameError: name 'datetime' is not defined
(2)同时导入多个模块:import 模块1名 [as 模块1别名], 模块2名 [as 模块2别名], …
例如:
import os, sys , datetime as dt, math # 同时导入 os、sys、datetime、math
print(dt.date.today(), math.ceil(2.98)) # 2020-02-03 3
二、导入模块中的对象
(1)基本语句:from 模块名 import 对象名 [as 对象别名]
这种方式导入的不是整个模块中的所有对象,而是指定的对象。通过这种方式导入的对象,在使用时,不需要加上“模块名.”这个前缀。当然,这也带来一个问题:在导入多个模块的情况下,如果有对象重名的现象,重名的对象会相互屏蔽。在导入时也可以给对象另取别名。例如:
from datetime import date # 仅导入 date
print(date.today()