PYTHON函数(6)将函数存储在模块中

函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定描述性名称,可让主程序容易理解的多。

你还可以进一步,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。

import语句允许在当前运行的程序文件中使用模块中的代码

1、导入整个模块

要让函数是可导入的,得先创建模块。模块是扩展名为.py的文件,包含要导入到程序中的代码。

下面来创建一个包含函数make_pizza()的模块。为此我们将文件pizza.py中除函数make_pizza()之外的代码都删除:

pizza.py

def make_pizza(size,*toppings):
    """概述要制作的pizza"""
    print("\nMaking a "+str(size)+"-inch pizza with the following toppings:")
    for topping in toppings:
        print("- "+topping)

接下来,我们在pizza.py所在的目录中创建另一个making_pizzas.py的文件,这个文件导入刚创建的模块,再调用make_pizza()两次

import pizza

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

结果与原先结果相同

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

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

2、导入特定的函数

你还可以导入模块中特定函数,这种导入方法的语法如下:

from module_name import function_name

通过逗号分隔函数名,可根据需要从模块中导入任意数量的函数:

from module_name import function_0,function_1,function_2

对于前面的making_pizzas.py示例,如果只是想导入要使用的函数,代码将类似于下面这样:

from pizza import make_pizza

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

3、使用as给函数指定命名

如果要导入的函数的名称可能与程序中现有名称冲突,或者函数名称太长,可指定简短而独一无二的别名——函数的别名,类似于外号

下面给函数make_pizza()指定了别名mp()。这是在import语句中使用make_pizza as mp实现的

from pizza import make_pizza as mp

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

指定别名的通用语法如下:

from module_name import function_name as fn

4、使用as给模块指定命名

通过给模块指定简短的别名,可以更轻松的调用模块中的函数

import pizza as p

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

给模块指定别名的通用语法如下:

import mmodule_name as mn

5、导入模块中的所有函数

使用*运算符可让python导入模块中的所有函数

from pizza import *

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

import语句中的星号让Python将模块pizza中的每个函数都复制到这个程序文件中。由于导入了每个函数,可通过名称来调用每个函数,而无须使用句点表示法。然而,使用并非自己编写的大型模块时,最好不要采用这种导入方法。这是因为如果模块中有函数的名称与当前项目中使用的名称相同,可能导致意想不到的结果:Python可能遇到多个名称相同的函数或变量,进而覆盖函数,而不是分别导入所有的函数。
最佳的做法是,要么只导入需要使用的函数,要么导入整个模块并使用句点表示法。这让代码更清晰,更容易阅读和理解。这里之所以介绍这种导入方法,只是想让你在阅读别人编写的代码时,能够理解类似于下面的import语句:

from module_name import *
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值