Python中的變數和範圍詳解,python變數域詳解

來源:互聯網
上載者:User

Python中的變數和範圍詳解,python變數域詳解

範圍介紹

python中的範圍分4種情況: L:local,局部範圍,即函數中定義的變數;

E:enclosing,嵌套的父級函數的局部範圍,即包含此函數的上級函數的局部範圍,但不是全域的;

G:globa,全域變數,就是模組層級別定義的變數; B:built-in,系統固定模組裡面的變數,比如int, bytearray等。 搜尋變數的優先順序順序依次是:範圍局部>外層範圍>當前模組中的全域>python內建範圍,也就是LEGB。

x = int(2.9) # int built-ing_count = 0 # globaldef outer():o_count = 1 # enclosingdef inner():i_count = 2 # local

當然,local和enclosing是相對的,enclosing變數相對上層來說也是local。

#定義變數a>>> a = 0>>> print a0#定義函數p()>>> def p():... print a... >>> p()0#定義函數p2()>>> def p2():... print a... a = 3... print a... >>> p2() # 運行出錯,外部變數a先被引用,不能重新賦值Traceback (most recent call last):File "<interactive input>", line 1, in <module>File "<interactive input>", line 2, in p2UnboundLocalError: local variable 'a' referenced before assignment#定義函數p3()>>> def p3():... a = 3 # 不引用直接賦值... print a... >>> p3()3>>> print a0 # 外部變數a並未改變

以上所述是小編給大家介紹的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.