首页 > 技术文章 > 【Python全栈笔记】03 [模块二] 16-17 Oct 函数

doble-bern 2016-10-18 09:10 原文

定义一个函数

def function_name(形式参数):

  代码块

  return 'Value' #如果没有写return,则默认返回None

  # 一个函数到return这一行就结束执行了,在return后面写的东西不执行

 

function_name(实际参数)  # 只有call这个函数的时候才会执行函数里面的代码

 

函数把功能提取了出来,提高效率减少代码量

定义函数的时候,参数可以有不止一个,可以是普通参数,默认参数,动态参数。默认参数放在普通参数后面,动态参数放在最后面。

输入实际参数的时候按照形式参数顺序依次写入,如果不按照顺序,则需要把参数名加上写入。

默认参数可以有默认值,输入实际参数的时候可以覆盖默认值。

动态参数通常写为'*args'和'**kwargs'两颗星号的放在后面,一颗星的参数算作一个tuple, 两颗星的算作一个dict。

函数外部的变量为全局变量,函数里面是局部变量,python内置的为内置变量。遵循local > global> built-in 的变量查找顺序。

为了便于区分,全局变量用全大写。在函数内如果需要使用全局变量,需要在变量前加上global。 

 1 def top_movies(num=5, *args, **kwargs):
 2     print(num)
 3     print(args)
 4     print(kwargs)
 5 
 6 rank = (0, 1, 2, 3, 4, 5)
 7 keywords = { '1': 'The Shawshank Redemption', '2':'Fight Club', '3':'Toy Stories', '4':'Radio Rock', '5':'Fantastic Mr. Fox'}
 8 
 9 top_movies(*rank, **keywords)
10 
11 '''
12 运行后得到结果:
13  0
14 (1, 2, 3, 4, 5)
15 {'1': 'The Shawshank Redemption', '5': 'Fantastic Mr. Fox', '2': 'Fight Club', '3': 'Toy Stories', '4': 'Radio Rock'}
16 参数第一个数字默认为num, 虽然是在rank这个tuple里面,剩余的几位为args,最后为kwargs。可见是严格按照指定参数顺序来的。
17 如果不在实参前加上'*'和'**',输入的参数会默认为实际参数的第一个值。 
18 '''

 

Reference:

想不起来讲了什么内容的时候,参考一下老师的教学笔记 

http://www.cnblogs.com/wupeiqi/articles/5453708.html

推荐阅读