美文网首页
12 函数再进阶

12 函数再进阶

作者: 陪伴_520 | 来源:发表于2019-01-07 20:41 被阅读0次

将函数存储在模块中

上面的意思就是如何把我们写好的函数存储起来待用?
这需要一个功能稍多一些的编译器比较方便,这次用的是Pycharm,首先在Pycharm里新建一个工程。
至于什么是工程Project --- 就相当于一个“文件夹”,后面写的程序都直接放在这个“文件夹”里,因为有些程序相互之间有依赖关系,所以这样方便调用。
我们以一个例子来说明:
def make_pizza(size, *toppings):
    """概述要制作的pizza"""
    print("\nMaking a " + str(size) +
          "-inch pizza with the following toppings:")
    for topping in toppings:
        print("-" + topping)
# 这是已经编好的函数
我们在新建的工程里新建Python程序。上面是我们已经写好的一个函数程序---pizza.py,我们将其保存。
下面我们再在工程里新建一个Python文件---making_pizza.py
import pizza  # 导入目录下的pizza函数
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')

# Python在读取这个文件时,import pizza让Python打开文件pizza.py并复制其中的所有函数。

再我们看下添加进工程是什么样子。(先忽略下面的两个print文件)
图片.png

可以看到making_pizza代码里用到了import pizza意思就是将目录下的pizza程序导入调用一下

Result

Making a 16-inch pizza with the following toppings:
-pepperoni

Making a 12-inch pizza with the following toppings:
-mushroom
-green peppers
-extra cheese

当然你也可以调用pizza里的部分函数

(只是这个例子里就一个函数哈哈)

# 也可以只导入指定模块的某个函数 --- 如只导入pizza文件里的make_pizza函数
from pizza import make_pizza
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')
# 导入多个函数时用逗号隔开

还可以给函数重新命名 --- 不仅仅是为了简写


# 还可以给函数取个缩写名,或者是为了防止与本身程序中的函数重名
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushroom', 'green peppers', 'extra cheese')

下面print_3D例子是前面的一个更改

函数部分

##### --- 模拟3D打印的制作过程
def print_models(unprinted_designs, completed_models):
    """
    模拟打印每个设计,直到没有未打印的为止
    打印设计后,将其移至completeed_models列表   
    """
    while unprinted_designs:
        current_design = unprinted_designs.pop() 

        # 模拟根据设计制作3D打印的过程
        print("Printing model: " + current_design)
        completed_models.append(current_design)  


def show_completed_models(completed_models):
    """显示打印好的所以模型"""
    print("\nThe following models have been printed:")
    for completed_model in completed_models:
        print(completed_model)

在模块中使用函数

#在print_3D模块中导入相应的函数并取缩写
from print_3D import print_models as pm
from print_3D import show_completed_models as scm

# 下面假设未打印的模型列表
unprinted_designs = ['plane', 'car', 'bicycle']
# 定义一个空列表,打印好的移至completed_models
completed_models = []

# 下面调用第一个函数去处理
pm(unprinted_designs, completed_models)

# 再调用第二个函数去show
scm(completed_models)



# 还可以直接导入所有函数
import print_3D
# 下面假设未打印的模型列表
unprinted_designs = ['plane', 'car', 'bicycle']
# 定义一个空列表,打印好的移至completed_models
completed_models = []

# 下面调用第一个函数去处理
pm(unprinted_designs, completed_models)

# 再调用第二个函数去show
scm(completed_models)
5e20d8e15336d1261281cb01eb31f7ef.jpeg

相关文章

  • VisualStudioCode编辑进阶

    VisualStudioCode编辑进阶 跳转到函数定义 f12或鼠标放到函数上,然后按ctrl+leftclic...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • python 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • Python函数高阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • 17 函数进阶

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的...

  • 12 函数再进阶

    将函数存储在模块中 上面的意思就是如何把我们写好的函数存储起来待用? 这需要一个功能稍多一些的编译器比较方便,这次...

  • 07 C函数

    1、why函数? 2、函数进阶 3、递归函数

  • 06.1.Python函数续

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

  • 11.Python函数续

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

  • 10.Python函数续

    目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数...

网友评论

      本文标题:12 函数再进阶

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