python函数使用易错举例
關(guān)于嵌套:
嵌套使用中, ?retrun inner ?--->?返回的是函數(shù)的地址
?retrun inner() : ?? ---> ?運(yùn)行inner()函數(shù) ? ---> 運(yùn)行inner()函數(shù)后的返回值a(假設(shè))返回上級(jí) ?--> ? ? ??retrun inner()得到返回值a
如果函數(shù)沒(méi)有指定返回值,那么默認(rèn)的返回值就是 None
舉例1:
name = "老師"def outer():name = "小屁孩"def inner():print(name)return inner()ret = outer() print(ret)#運(yùn)行結(jié)果:
?
舉例2(易錯(cuò),與舉例1對(duì)比):
這里要注意的是,inner是屬于 ?outer內(nèi)部的函數(shù),因此,“ 即使單獨(dú)運(yùn)行 ” ?inner內(nèi)部的函數(shù),其內(nèi)部的參數(shù)沒(méi)有定義的話,也會(huì)先去從它的上級(jí)函數(shù)找,這里inner的上級(jí)函數(shù)就是 ?outer
?
name = "老師" def outer():name = "小屁孩"def inner():print(name)return innerret = outer() ret() # 相當(dāng)于運(yùn)在outer當(dāng)中運(yùn)行了inner print("ret = outer(): ",ret) result = ret() print("result = ret(): ",result) # 相當(dāng)于運(yùn)在outer當(dāng)中運(yùn)行了inner,并且要了inner的返回值?
?
參考文獻(xiàn):?
python基礎(chǔ)-基礎(chǔ)知識(shí)考試_day5 (包括:函數(shù)_遞歸等知識(shí)) - 努力哥 - 博客園
https://www.cnblogs.com/nulige/p/6128674.html,第30題
?
?
舉例3:
這里需要注意的是,形參func存放的是外部全局定義的函數(shù)show的地址。
outer(show)()運(yùn)行過(guò)程: a =?outer(show) ?--> ? a()
name = "老師"def outer(func):print("outer!!")def inner():name = "李杰"func()return innerdef show():print("show!!")print(name)outer(show)()運(yùn)行結(jié)果:
?
舉例4(與舉例3區(qū)別):
?
name = "老師"def outer(func):print("name is given when ==>>func starts",name)def inner(name):print("name is given when ==>>inner starts",name)name = "李杰"func(name)return innerdef show(name):print("name is given when ==>>show starts",name)print(name)outer(show)(name)轉(zhuǎn)載于:https://www.cnblogs.com/jyfootprint/p/9409912.html
總結(jié)
以上是生活随笔為你收集整理的python函数使用易错举例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 魔兽世界诺格弗格药剂在哪买?
- 下一篇: Python学习---django知识补