前幾天講模組講得很開心,都沒有清楚說明import規則,所以底下就來好好整理一下。
先看我們原本習慣的import,拿random模組來當例子。
import random
fruit = ('apple','orange','pear','lemon','peach')
print(random.randint(1,10))
print(random.choice(fruit))
print(random.randrange(1,10,2))
如果覺得模組名太長,好累好廢不想打的話,可以試試import/as:import 模組名 as 短名稱
import random as r
fruit = ('apple','orange','pear','lemon','peach')
print(r.randint(1,10)) #全用r..夠懶
print(r.choice(fruit))
print(r.randrange(1,10,2))
再來我突然覺得,一直打「模組名.屬性項」這樣的語法好麻煩,就可以用from/import匯入你所需要的屬性項,不用再打模組名。from 模組名 import 名稱
from random import randint
print(randint(1,10)) #不用再打模組名
from random import randint as i #跟as做結合
print(i(1,10))
print(randrange(1,10,2)) #錯誤!沒有import到randrange
最後想想,一個一個匯入太慢沒效率,我想要用到的是全部功能,那就用import*
,如此就是匯入模組內全名稱。from 模組名 import*
from random import*
fruit = ('apple','orange','pear','lemon','peach')
print(randint(1,10))
print(choice(fruit))
print(randrange(1,10,2))
還是提醒說,沒有很推薦用import*
,因為會匯入模組內全名稱,容易跟程式內的名稱衝突,變得更難管理。
假如現在程式越寫越大,有很多模組分工不同功能,當然就會要有資料夾來幫你包起來,整理好分類呀~那麼這資料夾就類似套件(Package)的概念,如下圖:
這通常在其他Python IDE都看的到,套件清楚地分類功能,若在未來,想開發跟圖有關的軟體,內部功能一定多得可怕(圖形介面、顯示圖片、簡易編輯...),所以套件的角色真的重要。
套件也是模組,也能匯入,同樣是用import,其實跟一開始講的匯入模組大同小異,語法如下:import 套件名.套件名
import 套件名.套件名.模組名
當然也能用import/as跟from/import,這裡也不多說,等有機會完成大型專案在討論吧~