1. 程式人生 > >《Python程式設計從入門到實踐》記錄之將Python函式儲存在模組中(import、import*)

《Python程式設計從入門到實踐》記錄之將Python函式儲存在模組中(import、import*)

目錄

1、匯入整個模組

2、匯入特定的函式

3、使用as給函式指定別名

4、匯入模組中的所有函式

5、總結


我們可以在編寫程式時將函式儲存在被稱為模組的獨立檔案中,再將模組匯入到主程式中(必須的步驟)。port語句允許在當前執行的程式檔案中使用模組中的程式碼。

模組是副檔名為.py的檔案,包含要匯入到程式中的程式碼。


模組的方法有很多種:

1、匯入整個模組

匯入模組方法:

import module_name(模組名)

呼叫方法:

module_name.function_name()


要讓函式是可匯入的,需要建立模組。

建立一個製作pizza的模組(pizza.py):

#!/usr/bin/env python
# -*- coding:utf-8 -*-


def make_pizza(size, *toppings):
    """概述要製作的比薩"""
    print("\nMaking a " + str(size) + "-inch pizza with the following toppings:")

    for topping in toppings:
        print("- " + topping)

另外在同目錄下建立一個make_pizza.py的檔案,這個檔案匯入剛建立的模組,再呼叫make_pizza()函式兩次:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 匯入pizza模組
import pizza

pizza.make_pizza(16, 'pepperoni')  # 呼叫模組函式:(模組名.函式名)
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

執行結果為:

上述程式碼在執行時,程式碼行import pizza讓Python開啟檔案pizza.py,並將其中的多有函式都複製到主程式中,這些複製是Python

幕後進行復制的。當我們匯入pizza.py這個模組時,我們就可以使用pizza.py中定義的所有函式


2、匯入特定的函式

我們也可以在匯入時只匯入模組中的特定函式

匯入方法如下(可以匯入任意數量函式,逗號分隔):

module_name import function_name1, function_name2,function_3

呼叫方法:

function_name()


對於上述pizza的示例,如果只想匯入使用的函式,程式碼類似下面:

# 匯入pizza模組中的make_pizza()函式
from pizza import make_pizza

make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

3、使用as給函式指定別名

關鍵字as給函式或模組重命為你提供的別名

指定別名方法:

from module_name import function_name as fn


如上述例子,將make_pizze()指定別名mp(),程式碼類似如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 匯入pizza模組中的make_pizza()函式,並制定別名mp
from pizza import make_pizza as mp

mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')

4、匯入模組中的所有函式

使用星號(*)運算子可讓Python匯入模組中的所有函式

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# 匯入pizza模組中的所有函式
from pizza import *

make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

5、總結

模組在使用時,有兩種方式:

  1. 直接匯入模組,程式可以使用模組中所有定義的函式,呼叫方法為:module_name.function_name()(需要句點表示法)
  2. 匯入模組中的特定函式(上述2所講)或者全部函式(上述4所講),在呼叫函式時,需要使用模組名,直接使用函式名就可以呼叫:function_name()