美文网首页
python笔记:将function储存在module里

python笔记:将function储存在module里

作者: 生信start_site | 来源:发表于2021-01-10 11:35 被阅读0次

    上一篇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里

          本文链接:https://www.haomeiwen.com/subject/iekkaktx.html