1、函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定描述性名称,可让主程序容易理解得多。我们可以将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码,这样就可以共享这些文件,并重用这些函数。

2、导入整个模块,要让函数是可导入的,得先创建模块。模块是扩展名为.py的文件,包含要导入到程序中的代码。接下来附上简单的示例代码,了解一下简单的导入模块:

(1)、首先,创建一个名为def_test.py的模块文件,里面很简单的定义一个函数即可,供其他程序调用:

#函数模块,给其他的文件来调用def test(message):print("you send the message:" + message);

(2)、接着在模块文件同级目录底下新增一个文件,名为send_msg.py,使用import语句并在其中指定模块名,就可在程序中使用该模块中的所有函数。如果你使用这种import语句导入了名为module_name.py的整个模块,就可使用下面的语法来使用其中任何一个函数,module_name.function_name (),send_msg.py代码如下:

import def_test;def_test.test("Hello Python");

(3)、运行后如下图所示:

3、导入特定的函数,就是一个模块底下有很多函数,有时候不需要整个模块全部导入,只需导入特定的函数仅供调用即可。

(1)、这种导入特定函数的语法是:

​from module_name import function_name;

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

​from module_name import function_0 , function_1 , function_2;

(3)、接下来附上一个简单的示例代码,新建一个module_function_test.py模块文件,里面有两个不同的函数,代码如下:

#函数模块,给其他的文件来调用def user(name,age,sex):print("you name is:" + name + ",age is:" + str(age) + ",sex is:" + sex);def users(namesList):for name in namesList:print("many name:" + name);

再新建一个call_function.py文件,导入模块里面特定的函数,接着调用,代码如下:

​​from module_function_test import user,users;user("Jenny",21,'male');
users(['lc','xg','ee']);

运行后如下图所示:

4、使用as给函数指定别名,给函数指定别名的通用语法为:

from module_name import function_name as fn;

如果需要指定多个函数别名的话,逗号隔开即可,改下上面第三点导入特定函数底下的call_function.py代码:

from module_function_test import user as u_one,users as u_two;u_one("Jenny",21,'male');
u_two(['lc','xg','ee']);

5、使用as给模块指定别名,给模块指定别名的通用语法为:

import module_name as mn

改下上面第二点简单的导入整个模块的send_msg.py文件,代码如下:

import def_test as t;t.test("Hello Python");

6、导入模块中的所有函数,可以使用星号(*)运算符,通用语法如下:

​​from module_name import *;

改下上面第三点导入特定函数底下的call_function.py代码:

from module_function_test import *;user("Jenny",21,'male');
users(['lc','xg','ee']);

7、函数编写规范:

(1)、应给函数指定描述性名称,且只在其中使用小写字母和下划线。描述性名称可帮助你和别人明白代码想要做什么。给模块命名时也应遵循上述约定。

(2)、每个函数都应包含简要地阐述其功能的注释,该注释应紧跟在函数定义后面,并采用文档字 符串格式。文档良好的函数让其他程序员只需阅读文档字符串中的描述就能够使用它:他们完全可以相信代码如描述的那样运行;只要知道函数的名称、需要的实参以及返回值的类型,就能在自己的程序中使用它。

(3)、给形参指定默认值时,等号两边不要有空格,对于函数调用中的关键字实参,也应遵循这种约定,比如下面代码所示:

#传递实参,默认值示例代码def test(name='林哈皮',msg='一起哈皮'):print("你想对" + name + "说的是:")print(msg + "\n");#实参无值传递,则全部使用形参里的默认值
test();#实参传递name的值,则形参里的name的默认值不起作用
test(name='陈哈啤');

(4)、如果形参很多,导致函数定义的长度超过了79字符,可在函数定义中输入左括号后按回车键,并在下一行进行代码缩进,从而将形参列表和只缩进一 层的函数体区分开来。 大多数编辑器都会自动对齐后续参数列表行,使其缩进程度与你给第一个参数列表行指定的缩进程度相同:

def test(user1,user2,user3,user4,user5,user6,user7,user8,user9,):print(user1 + "," + user2 + "," + user3 + "," +user4 + "," + user5 + "," + user6 + "," +user7 + "," + user8 + "," + user9);test('uesr001','uesr002','uesr003','uesr004','uesr005','uesr006','uesr007','uesr008','uesr009');

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

(6)、所有的import语句都应放在文件开头,唯一例外的情形是,在文件开头使用了注释来描述整个程序。

Python学习笔记之函数(五)相关推荐

  1. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  2. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  3. Python学习笔记:第五站 转圈圈

    Python学习笔记 文章目录 Python学习笔记 第五站 转圈圈 1. range()函数的使用 2. while循环 3. for-in循环 4. break.continue与else语句 5 ...

  4. Python学习笔记(十五):类基础

    以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-24 23:59 学习笔记 1,Python中的大多 ...

  5. Python学习笔记 -一到五

    第一阶段 第一章 python入门 小技巧:上注释使用(ctrl+/) print("") 输出的时候是,输出的就是""内的内容 如果是使用变量的话,不加&qu ...

  6. Python学习笔记——一些函数

    本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9 基础知识1: input( )函数 input()函数从控制台获得用户输入,无论用户在 ...

  7. 小甲鱼python003答案_小甲鱼:Python学习笔记003_函数

    >>> # 函数 >>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!" ...

  8. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  9. Python学习笔记:匿名函数

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. 2020 CCPC-Wannafly Winter Camp Day1 总结
  2. 安卓上的微软 Edge 浏览器新增支持长截图
  3. 华为备忘录导入印记云笔记_原来华为手机自带会议神器,开会不用手写,这个功能就能搞定...
  4. chengren-成人-php系列3
  5. 如何进行需求结构化管理?
  6. 按照两个dataframe的index合并数据
  7. PowerPC E500 MMU详解
  8. php markdown 电子书_PHP Markdown转PDF解决方案
  9. 缓存系列文章–无底洞问题
  10. MFC (opencv配置) 应用程序无法正常启动(0xc000007b)请单击“确定关闭应用程序 的解决方法
  11. dp交换机命令_H3C-交换机维护命令大全
  12. ALSA架构应用程序aplay及amixer调用关系(应用层到内核驱动)
  13. IDEA中Maven项目中报错:10 unmapped Spring configuration files
  14. 纯CSS手里剑绘制优化1
  15. 天津科技大学计算机西电,学通信工程专业,大学四年该如何规划?谢谢
  16. Compilation error :org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
  17. 联通假4G欺骗消费者!
  18. 我们成为什么样的人,是由自己的选择决定的---Leo读 不是孙振耀写的职场感言 大结局 7
  19. 【matlab小白训练】凝聚层次聚类分析
  20. 巴比特 | 元宇宙每日必读:上海虹口启动元宇宙方向孵化项目申报,最多可获20万元补贴,有哪些要求?...

热门文章

  1. 软工总结暨团队成员自评(胡骏)
  2. python网络编程学习笔记(二)
  3. RHEL7 本地yum源配置
  4. SSIS hang with unhandle exception
  5. wp8对json的处理
  6. 安装非认证的chrome插件和设置文件夹的权限
  7. Ajax--WebService返回复杂二维数组
  8. Python_urllib
  9. MySQL基础——DDL语言学习\数据库的建立\MySQL数据类型\MySQL常见约束\表的增删改
  10. OpenCV中 IplImage 与 Mat的区别