iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0

匯入模組

前幾天講模組講得很開心,都沒有清楚說明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)

假如現在程式越寫越大,有很多模組分工不同功能,當然就會要有資料夾來幫你包起來,整理好分類呀~那麼這資料夾就類似套件(Package)的概念,如下圖:
https://ithelp.ithome.com.tw/upload/images/20181104/2011207846qqEGD7ms.png
這通常在其他Python IDE都看的到,套件清楚地分類功能,若在未來,想開發跟圖有關的軟體,內部功能一定多得可怕(圖形介面、顯示圖片、簡易編輯...),所以套件的角色真的重要。
套件也是模組,也能匯入,同樣是用import,其實跟一開始講的匯入模組大同小異,語法如下:
import 套件名.套件名
import 套件名.套件名.模組名
當然也能用import/as跟from/import,這裡也不多說,等有機會完成大型專案在討論吧~

參考資料

  • 書名-Python程式設計入門 /葉難-編著
  • 書名-輕鬆學Python3 /孫宏明-編著

上一篇
Day19-Random模組
下一篇
Day21-物件導向概念
系列文
Python 30天學習日誌30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言