新手Python第三天(函数)

栏目: Python · 发布时间: 7年前

内容简介:新手Python第三天(函数)

Python 函数的创建


def func2():
    print('haha')
    # 函数的返回值
    # 函数的返回值,没有定义返回None,
    # 有一个返回值返回这个object(可以返回一个函数对象),
    # 有多个则是返回一个元组
    return 0

View Code

Python 函数的调用

func2()

Python 函数的参数


def func3(x,y,z=5,*args,**kwargs):
    print(x)
    print(y)
    print(z)
func3(1,2,3)
#实际参数(实参):1,2,,3
#形式参数(形参):x,y,z
#默认参数:z=5,(非必须传递)

View Code

def func3(x,y,z=5,*args,**kwargs):
    print(x)
    print(y)
    print(z)
#位置参数的传递,位置的特性:需要一一对应
func3(1,2,3)
#关键字参数的传递,关键字的特性:不需要一一对应
func3(x=1,y=2,z=3)
#非固定参数:*args,**kwargs
#*args接收多余的位置参数的值,以元组形式
#**kwargs接收多余的关键字参数的值,以字典的方式
#混合参数的传递,特性:位置参数要在关键字参数前面,继承了位置和关键字的特性
func3(1,y=2,z=3)

View Code

Python 全局和局部变量


def test():
    name='xiaoming'#这是一个局部变量
global name #定义一个全局变量

View Code

Python 函数的递归

递归的三大特性:1.必须要有明确的结束条件,2.每次问题的规模要有所减少,3.递归的效率不高


def calc(n):
    print(n)
    if n>0:
        return calc(int(n/2))
calc(10)

View Code

Python 高阶函数

高阶函数分为二种(函数即变量):1.一个函数当参数传递个另一个函数,return返回一个函数的内存地址


#函数当参数传递
def add(a,b,i):
    res=i(a)+i(b)
    print(res)
add(1.222,2.111,int)
#函数当返回值返回
def func4():
    print('this is func4')
    return func5
def func5():
    print('this is func5')
func5=func4()
func5()

View Code

Python 函数的嵌套


#函数的嵌套
def func6():
    print('this is func6')
    def func7():
        print('this is func7')
    func7()
func6()

View Code

Python 装饰器

装饰器的条件:高阶函数+函数的嵌套


def logger(funcTest):   #把源代码的内存地址传递给装饰器
    def waps(*args,**kwargs): #封装内部装饰器
        print('befor')        #装饰的内容
        res=funcTest(*args,**kwargs)#调用源代码
        print('after')
        return res            #返回funcTest的结果
    return waps               #返回封装的装饰器
@logger #funcTest=logger(funcTest)
#被装饰函数的源代码
def funcTest(x):
    print('this is test file',x)
    return x
#funcTest=logger(funcTest) #logger返回的是waps的内存地址,
x=funcTest(x=1) #实际调用的是上方的waps,通过内部的waps调用的funcTest
print(x)

View Code

Python 三层装饰器


def auth(auth_type): #第三层加入装饰器参数
    def out(func):
        def wrapper(*args,**kwargs):
            if auth_type=='localhost':
                if local_login():
                    print('登入成功')
                    return func(*args,**kwargs)
                else:
                    print('登入失败')
            elif auth_type=='file':
                if file_login():
                    pass    #文件接口登入
            else:
                print('没有这个登入接口')
        return wrapper
    return out
@auth(auth_type='localhost')
def index():
    print('welcome to index page')
index()

View Code

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Data Structures and Algorithms in Python

Data Structures and Algorithms in Python

Michael T. Goodrich、Roberto Tamassia、Michael H. Goldwasser / John Wiley & Sons / 2013-7-5 / GBP 121.23

Based on the authors' market leading data structures books in Java and C++, this book offers a comprehensive, definitive introduction to data structures in Python by authoritative authors. Data Struct......一起来看看 《Data Structures and Algorithms in Python》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具