函数(基本定义,作用域,参数,lambda)

2016-05-21  本文已影响154人  04a07ffbfb62

函数是对程序逻辑进行结构化或过程化的一种编程方法。能将整块代码巧妙地隔离成易于管理的小块,把重复代码放到函数中而不是进行大量的拷贝--这样既能节省空间,也有助于保持一致性。

python可以创建四种函数:

全局函数:定义在模块中
局部函数:嵌套在其他函数中
lambda函数:表达式
方法:与特定数据类型关联的函数,并且只能与数据类型关联一起使用(定义在类中的函数)

def

def是一个可执行语句
def创建了一个对象并赋值给一个变量名(即函数名)

return

函数是通过return语句将计算得到的值传递给调用者的,返回值成为函数调用的结果。
如果函数执行了return语句,那么函数的生命就结束了,return 语句后面的代码都不会执行。函数里只能执行一次return语句,但可以写多条return语句

函数返回结果

没有return语句,没有返回值,返回对象类型是none;(如果在构造函数中,没有返回值,记得在最后加上 return none)
返回一个值的时候,类型为object;
返回多个值的时候,python会把返回值聚集起来,以元组的形式返回;

def test():
    print 'haha'
res = test()
>>>haha
print res
>>>None
type(res)
>>>NoneType

调用函数

使用()对函数进行调用;

  def t1():
     print 'hello'
     return None

  t1
  >>> <function __main__.t1>
  print t1
  >>> <function t1 at 0x00000000038B8DD8>
  t1()
  >>> hello

函数作用域

  • python创建、改变、查找变量名都是在名称空间中进行

变量名解析:LEGB原则

变量名引用分三个作用域进行:首先是本地、之后是外层函数内、接着是全局(模块),最后是内置;

tml.png

参数匹配模型

默认情况下,参数通过其位置进行传递,从左到右,个数相同;
但也可以通过关键字参数、默认参数或参数容器等改变这种机制:

lambda

lambda是表达式,不是语句,不是代码块
参数是可选的,lambda表达式返回的是一个可调用函数对象

f18 = lambda x, y: x + y
f18
>>> <function __main__.<lambda>>
f18(1, 2)
>>> 3
# 收集可变参数的lambda
m = 3; n = 4; l = [1,2]
f19 = lambda *z: z
f19(m, n)
>>> (3, 4)
f19(m, n, l)
>>> (3, 4, [1, 2])

函数的设计规范

  • 降低耦合性:
上一篇 下一篇

猜你喜欢

热点阅读