码迷,mamicode.com
首页 > 编程语言 > 详细

Python开发【第四章】:Python函数剖析

时间:2016-08-14 19:08:45      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

一、Python装饰器

定义:本质是函数(装饰其他函数),为其他函数添加附件功能的。

遵循原则:①不能修改被装饰函数的源代码

     ②不能修改被装饰函数的调用方式

组成:装饰器由高阶函数+内嵌函数+闭包组成

1、函数的调用顺序

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian

#函数错误的调用方式
def func():                     #定义函数func()
    print("in the func")
    foo()                       #调用函数foo()

func()                          #执行函数func()

def foo():                      #定义函数foo()
    print("in the foo")

###########打印输出###########              #报错:函数foo没有定义
#NameError: name ‘foo‘ is not defined


#函数正确的调用方式
def func():                     #定义函数func()
    print("in the func")
    foo()                       #调用函数foo()

def foo():                      #定义函数foo()
    print("in the foo")

func()                          #执行函数func()

###########打印输出###########              
#in the func
#in the foo

总结:被调用函数要在执行之前被定义 

 

2、高阶函数

满足下列条件之一就可成函数为高阶函数

 

  • 某一函数当做参数传入另一个函数中

  • 函数的返回值包含一个或多个函数

刚才调用顺序中的函数稍作修改就是一个高阶函数

 

#高阶函数
def func():                     #定义函数func()
    print("in the func")
    return foo()                #调用函数foo()

def foo():                      #定义函数foo()
    print("in the foo")
    return 100

res = func()                     #执行函数func()
print(res)                       #打印函数返回值

###########打印输出###########
#in the func
#in the foo
#100

 

从上面的程序得知函数func的返回值为函数foo的返回值,如果foo不定义返回值的话,func的返回值默认为None

 

 

 

 

 

 

 

Python开发【第四章】:Python函数剖析

标签:

原文地址:http://www.cnblogs.com/lianzhilei/p/5770672.html

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