国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 吴江市| 石棉县| 湖北省| 垫江县| 万年县| 米脂县| 九寨沟县| 淮安市| 吴旗县| 大渡口区| 三穗县| 馆陶县| 梓潼县| 安溪县| 潼南县| 蒲江县| 阳新县| 焦作市| 琼中| 新郑市| 绥滨县| 许昌市| 郑州市| 依兰县| 昌宁县| 女性| 中山市| 梁河县| 湘潭县| 阿图什市| 旬邑县| 新竹县| 分宜县| 工布江达县| 凤山县| 德令哈市| 翁牛特旗| 呼和浩特市| 乡宁县| 应用必备| 黄平县|