1. 程式人生 > >python中import和from import的區別

python中import和from import的區別

前些日子看到知乎上有人把import比作一輛車,把from import比作車子裡面的礦泉水

我覺得這比喻還可以,但是首先得確定你是一個缺水的人,你渴你正要礦泉水,而不是什麼咖啡牛奶

先舉一個大家都清楚的例子:

>>> import datetime

>>> print(datetime.datetime.now())

2018-05-05 22:02:59.862502

import是引入整個datetime庫,如果你要使用datetime庫中的datetime類,你需要在使用的時候加上類名限定

也就是說datetime庫中還有date、time等等很多的類,你不加上類名程式可不知道你用什麼類

要是便於理解的話,你可以把類看作是一個執行什麼特定功能的函式

接下來看另一個:

>>> from datetime import datetime

>>> print(datetime.now())

2018-05-05 22:04:00.755502

如果使用from import,那就直截了當了,你就是需要datetime庫裡的datetime類

這時候你呼叫的時候,就不用加上類名的限定

看完了標準庫如何匯入呼叫,我們試試呼叫自己所寫的函式吧

程式如下:

# hello.py

def add(a, b):

return a + b

def sub(a, b):

return a - b

在我寫的hello.py檔案中,只有一個add和一個sub函式

執行該程式,我們分別看看它的兩種呼叫方式

import:

>>> import hello

>>> hello.add(1, 2)

3

>>> hello.sub(2, 3)

-1

>>> x = hello

>>> x.add(1, 3)

4

from import:

>>> from hello import add

>>> add(2, 3)

5

>>> from hello import *     # 匯入全部函式

>>> sub(4, 3)

1