Python学习笔记之函数(五)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012561176/article/details/81974209

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语句都应放在文件开头,唯一例外的情形是,在文件开头使用了注释来描述整个程序。 

猜你喜欢

转载自blog.csdn.net/u012561176/article/details/81974209
今日推荐