上一篇python筆記學(xué)習(xí)了什么是function(python筆記:Functions)鹉究,以及function的結(jié)構(gòu)和如何call function。這一篇筆記記錄的是如何將你的function儲存在Modules里踪宠。
在你讀python代碼的時候自赔,一定看到過下面這樣的代碼:
import ***
或者
import *** as ***
或者
from *** import ***
你真的明白它們的意思嗎?
通過function的功能柳琢,可以把我們的代碼分成“一塊一塊的”绍妨,通過添加描述,使我們的代碼更加容易閱讀柬脸。進(jìn)一步的他去,我們可以把我們的functions儲存在一個單獨(dú)的文件里,這個文件稱為“module”灾测,使用的時候只需要在我們的主體代碼里import就行了垦巴。使用“import”告訴python蛾号,在當(dāng)前這個運(yùn)行的代碼里,我要使用某個module精刷。
把我們的function儲存在一個單獨(dú)的文件里,可以使你在不同的程序里隨時調(diào)用你的function纫事。同時也方便其他人使用丽惶。
在開始import我們的function之前,我們第一步需要做的是創(chuàng)建一個module抡秆。module文件一般是以“.py”為后綴的文件的止。里面包含了你想import的function。舉個例子权谁,我們創(chuàng)建一個名為“pizza.py”的文件,其中的代碼:
def make_pizza(size, *toppings):
"""Summarize the pizza we are about to make."""
print(f"\nMaking a {size}-inch pizza with the following toppings:")
for topping in toppings:
print(f"- {topping}")
然后將這個文件保存。
現(xiàn)在打開一個新的文件.py文件悯舟,或者.ipynb文件,這時我們想call上面的這個function反惕,實(shí)際上現(xiàn)在的步驟就不是call function了,是import:
import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
第一行import pizza,是告訴python打開文件pizza.py,并且復(fù)制function到新的程序里。這時中鼠,在這個pizza.py文件里的所有functions都可以在新的程序里使用。
接著,為了調(diào)用這個function筐赔,首先要先打出module的名字,這里是“pizza”。隨后跟著“.”,然后是function的名字溜哮,這個例子里,function的名字是“make_pizza”。然后括號里是這個function需要的參數(shù)。
這時運(yùn)行這個程序走趋,輸出的結(jié)果是:
Making a 16-inch pizza with the following toppings:
- pepperoni
Making a 12-inch pizza with the following toppings:
- mushrooms
- green peppers
- extra cheese
如果一個module里包含多個function氮唯,你可以使用下面的公式來調(diào)用它們:
module_name.function_name()
(一)import指定的function
在import module時鉴吹,為了import某一個特殊的function,你可以使用下面這個代碼:
#method 1
from moudle_name import function_name
#method 2
from module_name import function_0,function_1,function_2
所以上面的例子惩琉,我們也可以使用這樣的代碼來import module:
from pizza import make_pizza
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
NOTE: 如果你使用這樣的方法來調(diào)用function豆励,就不用再在make_pizza前加上“pizza.”了。因?yàn)槟阍趇mport里已經(jīng)特定的指出我們使用的是“make_pizza”這個function了瞒渠。
(二)使用as給function一個別名
如果你的這個function的名字與一個已經(jīng)存在的名字沖突了良蒸,或者這個function的名字特別長,你可以給你的function起個別名伍玖。
舉個例子嫩痰,以上面的pizza為例,我們可以把make_pizza這個function名字起個別名“mp”私沮。然后再import:
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')
這里可以看出來始赎,當(dāng)你再call這個function的時候,你只需要使用mp來call它就行了仔燕。
(三)使用as給Module一個別名
同樣的造垛,你也可以給module起個別名:
import pizza as p #給module起個別名p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
(四)importing module里所有的function
你可以使用*來import一個module里的所有function:
from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
這個星號就是告訴python,我要把這個module里所有的function都import過來晰搀。但是如果你使用的module很大五辽,最好不要這么干。