python-基础day10
生活随笔
收集整理的這篇文章主要介紹了
python-基础day10
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#函數的進階
#命名空間和作用域
#內置命名空間:#python解釋器一啟動就可以使用的名字#內置的名字在啟動解釋器的時候被加載進內存里
#全局命名空間#在程序從上到下被執行的過程中依次加載進內存的#放置我們設置的所有變量名和函數名
#局部命名空間#就是函數內部定義的名字#當調用函數的時候 才會產生這個名稱的空間隨著函數執行結束,這個命名空間就消失了
#在局部:可以使用全局、內置命名空間的名字
#在全局:可以使用內置命名空間中的名字,但是不能用局部中使用
#在內置:不能使用局部和全局的名字的
def max():print('in max func')
max()
#作用域兩種
# 全局作用域——作用在全局——內置和全局
# 局部作用域——作用在局部——函數——使用locals
a=1
def func():global a #全局申明a+=1
func()
print(a)
#globals 永遠打印全局的名字
#locals 根據locals所在的位置def max(a,b):return a if a>b else b
def the_max(a,b,c):x =max(a,b)return max(x,c)
print(the_max(1,2,3))#函數的嵌套定義
def outer():def inner():a=1print('inner')def inner2():nonlocal a #用于局部變量的聲明print('inner2')inner2()inner()
outer()
#函數名相當于函數的內存地址 可以當作變量用
def func():print(123)
def fun(f):f()
fun(func)
#閉包:嵌套的函數,內部函數調用外部的變量
def oh():a=1def oi():print(a)return oi
ch=oh() #將oi的地址給與變量ch
ch() #將ch使用oi的地址形成一個函數,就相當于使用oi()#閉包:嵌套的函數,內部函數調用外部的變量
def oh():a=1def oi():print(a)return oi
ch=oh() #將oi的地址給與變量ch
ch() #將ch使用oi的地址形成一個函數,就相當于使用oi()
import urllib #模塊
from urllib.request import urlopen
ret =urlopen('https://www.taobao.com').read()
print(ret)
#閉包可以節省空間不用循環打開變量
def ger_htm():url='https://www.taobao.com'def ger_us():ret =urlopen(url).read()print(ret)return ger_us
get_func=ger_htm()
get_func()
?
轉載于:https://www.cnblogs.com/orange126/p/10852901.html
總結
以上是生活随笔為你收集整理的python-基础day10的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BZOJ3932][CQOI2015]
- 下一篇: 【转载】JAVAEE之内置对象和属性范围