国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python作用域

2019-11-06 08:18:39
字體:
供稿:網(wǎng)友

Python作用域

1、作用域基本規(guī)則

(1) 變量名引用查找,首先是本地,其次是函數(shù)內(nèi),然后是全局,最后是內(nèi)置。(2) 所有def函數(shù)內(nèi)賦值的變量名,默認均是本地變量,除非在之前聲明為全局變量。(3) 在def函數(shù)之外給一個變量名賦值時,本地作用域與全局作用域是相同的。
>>> (a, b, c) = (1, 2, 3)     # 定義全局變量a, b, c>>> def fun1():    a = 11                    # a變量在方法fun1內(nèi)定義,默認是本地變量    def fun2():        b = 21                # b變量在方法fun2內(nèi)定義,默認是本地變量        PRint a, b, c         # a和b是本地變量,c是全局變量    fun2()>>> fun1()11 21 3>>> a, b, c                   # a和b沒有被修改(1, 2, 3)

2、全局變量

(1) 跨文件訪問在文件mymod.py中
valA = 13valB = "Hello World"

訪問mymod模塊。

>>> import mymod              # import導(dǎo)入mymod>>> print mymod.valA          # 訪問mymod模塊的變量valAHello World>>> mymod.valB += 3           # 修改mymod模塊的變量valB>>> print mymod.valB16

(2) 文件內(nèi)函數(shù)訪問

在函數(shù)中訪問全局變量。
>>> x = "Hello World!">>> def fun():    print x                   # 直接訪問變量x>>> fun()Hello World!

(3) 函數(shù)內(nèi)修改全局變量

在函數(shù)內(nèi)對任何一個變量的賦值,都會在本地變量上修改。除非調(diào)用global,聲明該變量為全局變量。
>>> x = "Hello World!">>> def fun():    global x                  # 聲明x是全局變量    x = "welcome"             # 重新對x賦值>>> fun()>>> x'welcome'

(4) global聲明變量可以在全局沒有聲明過。

>>> def fun():    global b                  # 變量b沒有在全局被定義過    b = 17>>> b                         # b沒有被定義Traceback (most recent call last):  File "<pyshell#5>", line 1, in <module>    bNameError: name 'b' is not defined>>> fun()                     # 調(diào)用方法fun,b被定義為全局變量>>> b17

3、循環(huán)中訪問變量

嵌套函數(shù)在調(diào)用時才會使用變量,這時候參數(shù)都是同一個值。
>>> L = [1, 2, 3, 4, 5]>>> actions = []>>> for x in L:    def fun():                # 定義方法fun        print x ** 2,         # 使用循環(huán)中的變量x	actions.append(fun)>>> for ac in actions:	ac()25 25 25 25 25

在方法中添加參數(shù)記錄值。

>>> actions = []>>> for x in L:    def fun(i = x):           # 定義方法fun,設(shè)置參數(shù)i        print i ** 2,    actions.append(fun)>>> for ac in actions:	ac()1 4 9 16 25

4、訪問函數(shù)內(nèi)的本地變量。

>>> def fun1():    param = 12                # param是一個本地變量    def 4fun2():        print param           # 可以訪問變量param        param = 13            # 修改param的值,會引發(fā)異常	fun2()>>> fun1()Traceback (most recent call last):  File "<pyshell#132>", line 1, in <module>    fun1()  File "<pyshell#131>", line 6, in fun1    fun2()  File "<pyshell#131>", line 4, in fun2    print paramUnboundLocalError: local variable 'param' referenced before assignment
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌黎县| 得荣县| 瑞安市| 日土县| 淅川县| 理塘县| 武宣县| 焉耆| 宜黄县| 庆云县| 洞头县| 宽城| 凤庆县| 周口市| 乌兰浩特市| 三明市| 阳原县| 太白县| 阆中市| 河间市| 钟祥市| 武功县| 皮山县| 北安市| 乐安县| 泸溪县| 都江堰市| 湛江市| 南丰县| 崇仁县| 呼伦贝尔市| 永胜县| 昌都县| 永康市| 任丘市| 延津县| 呼图壁县| 玉山县| 衡东县| 盐池县| 通河县|