七、函数3(2022-04-13)

15.将函数存储在模块中

函数可以让主程序和代码块分离,使主程序更易读。

可以更进一步将函数存储为称为模块的独立文件中,通过将模块导入主程序调用函数。

这样可以隐藏代码细节,将重点放在更高层次的逻辑上,

(1)导入整个模块

首先要创建模块。模块使扩展名为.py的文件,其包含要导入到程序中的代码。

def make_noodles(size,solidity,*toppings):
    print(f"Make a {size} and {solidity} noodles with the following toppings:")
    for topping in toppings:
        print(f"\t-{topping}")
#将以上代买存入 noodles.py文件中。
import noodles  #导入noodles模块
noodles.make_noodles('thin','soft','pepper','mushroom','beef')  使用module。fuction()语句调用函数
noodles.make_noodles('thick','hard','vegetable')

Make a thin and soft noodles with the following toppings:
-pepper
-mushroom
-beef
Make a thick and hard noodles with the following toppings:
-vegetable

(2)导入特定的函数

采用 from module import function 的语句导入模块中特定的函数

同时,支持用都好分隔符一次导入多个函数 from module import function1 , function2 ,function3 ...

from noodles import make_noodles  #使用该方法导入的函数可以直接调用
make_noodles('thin','soft','pepper')  #直接调用 而不是使用 module.fuction()的方式调用

Make a thin and soft noodles with the following toppings:
-pepper

(3)使用as给函数、模块指定别名


from noodles import make_noodles as m_nod  #使用as 指定别名后,可以用别名直接调用
m_nod('thick','hard','mushroom')  #使用别名直接调用函数

import noodles as nod  #使用as 给模块指定别名
nod.make_noodles('thin','hard','mashroom')  #使用别名调用 模块中的方法。

Make a thick and hard noodles with the following toppings:
-mushroom
Make a thin and hard noodles with the following toppings:
-mashroom

(4)也可以使用 from module import * 的方式导入模块的所有方法

如果不是对模块特别熟悉 或 不是自己编写的模块,不见以采用该方式导入。容易发生函数重名,调用函数不容易让人理解。

最佳做法是:1.只导入需要调用的函数; 2.导入整个模块,使用句点法调用模块中的函数。

16.函数编写注意事项

(1)应给函数指定描述性名称,且在其中只使用小写字母和下划线。给模块命名应遵循上述约定。

(2)每个函数都应该包含简要的描述其功能的注释,注释紧跟在函数定义后面。使其他程序员阅读文档就可以使用它。

(3)指定形参默认值时,等号两边不要有空格。函数调用中的关键字实参,也应遵循这种约定。

(4)如果形参很多,导致函数定义长度超过了79字符,可以在函数定义中输入左括号后按回车键,并在下一行按两次Tab,从而将形参列表和只缩进一层的函数体区分开来。

之后大多数编译器会自动对其后续参数列表,使其缩进程度与你给定的第一个参数列表行只当的缩进程度相同。

(5)如果程序或模块包含多个函数,可以使用两个空行将相邻的函数分开,这样将更容易知道那个函数在什么地方结束,下一个函数从什么地方开始。

(6)所有import语句都应该放在文件开头。如果文件开头使用了注释描述整个程序的情况例外。

示例:

编写一个只包含一个函数的程序 make_tea(),并将其存于另一个文件中 tea.py,尝试以上的导入方式实现函数的调用

#1 导入整个模块,用句号格式调用函数
import tea
tea.make_tea()

#2 导入模块的指定函数,使用函数全名调用
from tea import make_tea
make_tea()
#3 导入模块的指定函数,并用as指定特定名称,使用指定名称调用
from tea import make_tea as mt
mt()

#4 导入模块,用as指定特定名称,使用特定名称 + 句号调用函数
import tea as t
t.make_tea()

#5 导入模块的所有方法,使用函数名称调用
from tea import *
make_tea()

你可能感兴趣的:(七、函数3(2022-04-13))