10.14

全局变量和局部变量

局部变量的作用范围仅限于函数内部,外部无法访问

函数内部可以使用全局变量但是无法修改全局变量

a = 100

def test_01():
	a = 0
    b = 110
    print(a)
    print(b)


def test_02():
    print(a)
    
test_02()

函数注释

#def 函数名():
#	代码

def sum_01(a,b):
'''
	a:int
	b:int
	:return  两数之和
'''
    return a+b

sum_01(1,2)


round()

值传递

  • 值传递:在传递参数时,仅仅是把拷贝一份传递给参数的函数,变量的值不发生变化
def test01(x,y):
    x += 10
    y += 20
    print(x,y)

a = 10
b = 20
test01(a,b)
print(a)
print(b)

引用传递

  • 在传递参数的时候,传地址,函数形参获取的值,也是同一块内存
def test02(nums):
    nums.append(10)
    nums.append(100)
    print(nums)

list1 = [1,2,3]
test02(list1)
print(list1)

匿名函数

python中,存在函数作为参数传递给函数,并且不想被外界访问,而且参数足够简单,即可以定义为匿名函数(lambda 表达式)

#let a = function(){}
#python中,如果要将函数作为参数传到另外一个函数里
#python中函数参数的数据类型:只要是对象就可以
#函数本身就是一个对象

def compute(a,b):
    return a+b

def test01(fn):
	a = fn(1,2)
    print(a)

#test01(compute)

test01(lambda a,b: a+b)
'''

lambda [a,b]:代码块

'''

偏函数

'''
def int2(x,base=2):
    return int(x,base)


a = int2("10010")
print(a)
'''

#偏函数:
import functolls
int2 = functools.partial(int,base=2)
print(int2('10010'))

python3.8新特性

  • 声明函数参数类型
#def fun(a,b,c)
#public static void fn(int a,double b,String c){

}

def add(x:int,y:float)->float:
	print(x + y)

add(1,1)
#add("1","1")

函数的嵌套

def fun1():
    b = 20
    def fun2():     #fun2 = def(){}
        print(b)
        print("2222")
	return fun2

a = fun1()
(a)

综上

1、函数可以作为返回值进行返回

2、函数可以作为参数进行传递

3、函数名本质上就是变量名,指向函数所在的内存地址

闭包

  • 一个函数嵌套另一个函数,内层函数用到外层函数的局部变量

关键字:nonlocal

def outer():
    a = 10
    def inner():
        nonlocal a
        print(a)
	print(a)
	return inner

a = outer()
a()
a()
outer()

装饰器

装饰器本质上是一个闭包,作用:不改变原有函数的前提下,为函数添加新的功能,但是源代码没改变

运用:用户登录、日志

def play_dnf():
	print("hi")

def play_wz():
	print("游戏")

"""
装饰器雏形:
def wrapper(目标函数):
	def inner():
		之前添加的事情
		目标函数原函数执行
		之后添加的事情
	return inner

@wrapper   #目标函数 = wrapper(目标函数)   为目标函数重新赋值
"""
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时逝人变

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值