Python004——函数

1.实参、默认参数和函数内参数赋值

def fun(var=1314):
    print(var)
a=fun(520)
print(a)

520
None #Python所有的函数都有返回值,如果没有return语句指定返回值,Ta会返回一个None对象
def fun(var=1314):
    var=6666
    print(var)
    return var
a=fun(520)
print(a)
6666
6666

2.嵌套函数和闭包

#第一种方法
def funOut():    
    def funIn():        
        print('宾果!你成功访问到我啦!')    
    return funIn()
    
 funOut()
 宾果!你成功访问到我啦!
 
 #第二种方法
 def funOut():    
     def funIn():        
         print('宾果!你成功访问到我啦!')    
     return funIn
     
 funOut()()
 宾果!你成功访问到我啦!
 go = funOut()
 go()
 宾果!你成功访问到我啦!

不同之处:

def funX():
    x = 5
    def funY():
        nonlocal x
        x += 1
        print(x )
        return x
    return funY()
a = funX()
print("第一次:",a)
print("第二次:",a)

6
第一次:6
第二次:6

def funX():
    x = 5
    def funY():
        nonlocal x
        x += 1
        print(x )
        return x
    return funY
a = funX()
print("第一次:",a())
print("第二次:",a())

6
第一次: 6
7
第二次: 7

3.生成器是一个特殊的函数,需要在普通的函数加上一个 yield 语句

  • 调用可以中断、可以暂停,暂停之后他把控制权临时交出来,然后交完之后,在需要的时候他又能够获取回来,重新获得控制权,从上一次暂停的时候继续下去。
>>> def myGen():
	print("生成器被执行!")
	yield 1
	yield 2
>>> myG = myGen()
>>> next(myG)
生成器被执行!
1
>>> next(myG)
2
>>> next(myG)
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    next(myG)
StopIteration
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值