python笔记:将function储存在module里

上一篇python笔记学习了什么是function(python笔记:Functions),以及function的结构和如何call function。这一篇笔记记录的是如何将你的function储存在Modules里。

在你读python代码的时候,一定看到过下面这样的代码:

import ***
或者
import *** as ***
或者
from *** import ***

你真的明白它们的意思吗?

通过function的功能,可以把我们的代码分成“一块一块的”,通过添加描述,使我们的代码更加容易阅读。进一步的,我们可以把我们的functions储存在一个单独的文件里,这个文件称为“module”,使用的时候只需要在我们的主体代码里import就行了。使用“import”告诉python,在当前这个运行的代码里,我要使用某个module。

把我们的function储存在一个单独的文件里,可以使你在不同的程序里随时调用你的function。同时也方便其他人使用。

在开始import我们的function之前,我们第一步需要做的是创建一个module。module文件一般是以“.py”为后缀的文件。里面包含了你想import的function。举个例子,我们创建一个名为“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}")

然后将这个文件保存。

现在打开一个新的文件.py文件,或者.ipynb文件,这时我们想call上面的这个function,实际上现在的步骤就不是call function了,是import:

import pizza 

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

第一行import pizza,是告诉python打开文件pizza.py,并且复制function到新的程序里。这时,在这个pizza.py文件里的所有functions都可以在新的程序里使用。

接着,为了调用这个function,首先要先打出module的名字,这里是“pizza”。随后跟着“.”,然后是function的名字,这个例子里,function的名字是“make_pizza”。然后括号里是这个function需要的参数。

这时运行这个程序,输出的结果是:

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,你可以使用下面的公式来调用它们:

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: 如果你使用这样的方法来调用function,就不用再在make_pizza前加上“pizza.”了。因为你在import里已经特定的指出我们使用的是“make_pizza”这个function了。

(二)使用as给function一个别名

如果你的这个function的名字与一个已经存在的名字冲突了,或者这个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')

这里可以看出来,当你再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很大,最好不要这么干。

你可能感兴趣的:(python笔记:将function储存在module里)