python第四天學習總結

來源:互聯網
上載者:User

標籤:python

1.名稱空間
a.全域名稱空間(命名空間):運行程式時,變數與值的記憶體位址的對應關係,不包括函數。
b.局部名稱空間:如果是函數,會將函數名存在記憶體中,函數體不管。執行函數時會臨時開闢一個空間,存放函數體裡面的代碼,函數外面訪問不到臨時空間的內容,函數執行完後,臨時空間會釋放掉。
c.內建名稱空間:存放python內建內容的空間,比如print()等
d.全域範圍:全域名稱空間 內建名稱空間
局部範圍:局部名稱空間

2.載入順序:內建名稱空間---全域名稱空間(程式執行時)---局部名稱空間(函數調用時)
取值順序(單向無法復原):局部名稱空間(函數調用時)---全域名稱空間(程式執行時)---內建名稱空間。取值只是引用,不能改變

3.函數的嵌套:嵌套中的函數執行完後,才會執行下面的代碼。函數中的函數是不同的臨時空間

  1. global():返回一個字典,存放全域名稱空間的內容。 print(globals())
    locals():返回一個字典,當前位置所有的變數,如果函數中嵌套多個函數,只返回locals()所在的那一層 print(locals())

5.gloabal:引用並改變一個全域變數;在局部範圍聲明一個全域變數
count = 1
def func1():
global count #引用全域的count變數,如果全域沒有此變數,也可以在此處聲明一個新count
count = count + 1 #可以在函數體內改變count的值,如果沒有global,此處只能引用count而不能改變
count = count + 100
print(count)
func1()
print(count) #全域的count也改變

noloacal:不能操作全域變數;從哪層引用的該變數,從那層開始全部改變
def func1():
count = 1
def inner():
nonlocal count #引用上一級的count
count = count + 3 #改變原count的值
print(count) #在inner函數內改變後的值
inner()
print(count) #上一級的count也改變,此count是局部變數,全域不能訪問
func1()

6.函數名的運用(可以把函數名理解為一個變數名):
a.函數名可以列印 print(func1) <function func1 at 0x000000000258F9D8>
b.函數名可以作為容器類資料的元素 list = [func1, func2, func3]
c.函數名可以作為函數的參數 func2(func1) func1相當於一個變數名
d.函數名可以作為函數的傳回值 return func1 把func1返回給當前函數的執行者

7.閉包函數
定義:內層函數對外層函數非全域變數的引用
作用:閉包函數不會隨著父級函數的結束而釋放

def fun1():
name = ‘cc‘
def inner1():
print(name) #引用父級的name
inner1()
print(inner1.closure) #判斷inner1是否是閉包,如果返回None則不是閉包函數,如果返回一段記憶體位址則是閉包函數
fun1()

8.裝飾器
本質:閉包函數
作用:在不影響原函數執行的基礎上,增加一些額外的功能
通用文法:
def timmer(f):
def inner(*args,*kwgrgs):
‘‘‘ 被裝飾函數之前的操作‘‘‘
ret = f(
args,**kwgrgs)
‘‘‘ 被裝飾函數之後的操作‘‘‘
return ret
return inner

python第四天學習總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.