码迷,mamicode.com
首页 > 其他好文 > 详细

函数。

时间:2017-11-03 18:53:14      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:并且   保存   nbsp   pytho   事件   family   元祖   默认参数   turn   

函数

把代码装起来

def my_len()
    1=[1,2,3,4,5,6]
    count = 0
    for i in l:
    count = count + 1
    return count
    ret my_len()
print(ret)

写函数的时候要尽量以功能为导向,结果最好不要直接在函数中打印。

 

 

函数的返回值:

没有返回值: 不写 return # none # 只写一个return

返回一个值 :  可以返回任意的数据类型  返回什么  接收什么。

 

def  函数名():

return 的作用:

1.返回一个值。

2.终止一个函数的继续。

 

返回多个值

用一个变量接收返回值。接收到的是一个元祖,返回有多个变量接收,那么返回值的个数应该和接收的变量的个数完全一致。

 

 

#参数

形参和实参

传参数可以传任意数据类型,并且传什么 接收什么

站在传参数的角度上看问题,一共有二种传参方式

第一种:按照位置传参数

第二种:按照关键字传参数

 

传多个参数 多个参数分别可以使用任意数据类型

PS:按照关键字传参数和按照位置传参数是可以混用的,但是,首先按位置的再传关键字的。

按照位置传完该接收的参数只能接收一个值,不接收或者重复接收都不想。

 

def my_len(lst)                               #参数:接收参数 形式参数 形参
    count= 0
    for i in lst:
    count = count + 1
    return count
l:[1,2,3,4]                                         #参数:传参数/传参 实际参数 实参
len_count = my_len(l)

 

 

形参:位置参数,数量必须与实参数量一致 ==> 必须传的参数

默认参数:

#默认参数是可以不传参的

#在不传参的情况下可以使用默认值

#如果传了,就会使用传的值。

 

动态参数

*args: 接收所有按照位置传的参数(参数组成的元祖)

在参数前面加‘*‘这个参数就变成了动态参数。(参数组成的字典)

使用的时候,所有接收的参数都被组织成一个元祖。

**kwargs :按关键字传参

def func(位置参数,动态参数,默认参数,**kwargs)

函数的命名空间  namespace

局部命名空间 每一个函数都有自己的命名空间

全局命名空间 写在函数外面的变量名。

内置命名空间 Python解释器启动之后就可以使用的名字

 

作用域:一个名字可以使用的区域

全局作用域:内置名字空间和全局名字空间中的名字都属于全局作用域

局部作用域:局部名字空间中的名字属于局部作用域。局部作用域可以使用全局作用域中的变量

全局作用域不能使用局部作用域中的变量

局部作用域中还可以嵌套更小的局部作用域

作用域链:小范围作用域可以使用大范围的变量。但作用域链是单向的,不能反向应用

globals   保存了在全局作用域中的名字和值

locals  中的内容会根据执行的位置来决定作用域中的内容

如果在全局执行 globals和locals打印的结果是一致的

 

函数的嵌套调用和函数的嵌套定义

命名空间 内置 全局 局部

作用域 全局 局部

作用域链 名字的使用 是从小范围到大范围的就近事件

小范围的可以使用大范围的但不能修改。

如果想修改全局的使用globals 关键字——————尽量避免

使用nonlocal ——不影响全局

函数名是第一类对象的概念

 

闭包的概念: 内部的函数引用了外部的函数的变量

 

函数。

标签:并且   保存   nbsp   pytho   事件   family   元祖   默认参数   turn   

原文地址:http://www.cnblogs.com/liruoshi/p/7779146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!