第七节课:高级函数

第七节课:高级函数,装饰器

目录:
1.函数结构
2.参数列表
3.装饰器
4.作用域

一. 函数结构:
def 函数名(参数列表):
——函数体
——return 返回值

不调用不执行

二.参数列表:
1.必须参数:调用时必须传值,
2.默认参数:调用时可以不传值。
如:def test(a,b=2)
其中b为默认参数,不传值时默认为2。
3.不定长参数:元组式,字典式
*args为元组式,返回为元组。
**kwargs为字典式,返回为字典。
4.攒参顺序:首先是必须函数,然后是默认参数,元组,字典。
除必须函数外,其他的位置可调换,但要通过指定参数的形式给予赋值。
可迭代:用for循环时不用range就可循环的数据结构。
如:for i in list:

三.装饰器
(一)闭包:
1.有外部函数,有内部函数(嵌套函数)
2.内部函数使用外部函数的变量(用到就行,最少一个)
3.外部函数返回内部函数名。
例:

def outter():
    age = 18
    def inner():
        print(age)
    return inner
#调用该函数
inerl = outter()#inerl相当于返回了inner函数
inerl()
#或
outter()()

2.装饰器的意义:已知一个函数,要对函数进行改变,但不想修改原函数。
——自己领悟吧!!!!
只可意会,不可言传。

#有一函数A

def longin(name,word):
    if name =="admin" and word == "123456":
        print("登陆成功")
    else:
        print("登陆失败")
#现要将A修改,加入验证码(在不修改A的情况下)。
def outer(args):
    def inner(name, word):
        val = input("请输入验证码:")
        if val == "1234":
            args(name, word)


    return longin

@outer
def longin(name,word):
    if name =="admin" and word == "123456":
        print("登陆成功")
    else:
        print("登陆失败")
val = "1234"
name ="admin"
word = "123456"
longin(name,word)

四.作用域:
1.global:在函数内改变函数外的值。

v = 12
def test():
    global v
    v += 10
    print(v)

test()

2.nonlocal:内层函数改变外层函数变量。

def test():
    v = 12
    def test2():
        nonlocal v
        v += 10
        print(v)
    return test2()
test()

3.看根在哪,在顶格用global,在外函数里用nonlocal

v = 12
def test():
    global v
    v += 12
    def test2():
        global v
        v += 10
        print(v)
    return test2()
test()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值