重拾Python第十三天(函数:作用域、返回值、参数、匿名函数、偏函数)

变量作用域(Python中只有模块、类以及函数能够分割作用域)

  • 分类:
    1.local:局部作用域
    2.enclosing:函数作用域(闭包外的函数体中)
    定义:调用函数一返回到函数二引用(return 函数二名称,指向函数二),函数二成为闭包。
def func1(a):
    b = 20
    
    def func2():
        print(a * b)
    
    return func2
enclo = func1(2)()

3.global: 全局作用域
4.built_in:内置作用域
变量查找规则:从上到下依次查找

# 内置函数:globals()可以查看全局变量,locals()可以查看局部变量
if 25 > 2:
	m = 'Yes'
print(m)  # m是全局变量,条件成立时存在,可以用globals()查看是否存在m

注:以上都是对于模块、类以及函数而言,没有这些代码块时,不必考虑作用域问题。

函数返回值

  • 一个函数只有一个return语句,表示函数的结束,即使有多个只会执行第一个。但在finally语句下,一个函数可能会执行多个return语句,后面的会覆盖前面的return语句;if的每个分支都可以有return语句。

参数

  • 缺省参数:有实参时,就使用实参值,没有时使用默认的值。
  • 位置参数必须放在关键字参数(参数名=…)的后面,缺省参数放在可变参数后面(关键字参数、位置参数、可变参数、缺省参数)
  • 可变位置参数表示方法:*args(多出来的参数以元组的形式保存在args变量中)
  • 可变关键字参数表示方法:**kwargs(多出来的参数以字典形式保存)

lambda匿名函数

x = lambda x, y: x * y
print(x(1, 2))

偏函数

一个函数会有一个或多个默认参数,此时可以调用函数时可用更少的参数,降低函数调用的难度。偏函数可以通过调用系统 functools 模块执行, 偏函数 partial 应用函数在执行时,要带上所有必要的参数进行调用

import functools
# int类转化时,base是默认参数,默认十进制
int_base = functools.partial(int, base = 2) #创建一个偏函数,参数依次为函数名和默认参数,此时函数int_base的参数base默认值是二进制
print(int_base("101")) #说明101是二进制形式,打印结果为十进制5
#
print(int_base("101", base = 10)) #说明101是十进制形式,打印结果为十进制101
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值