變數作用域

2021-07-05 13:17:56 字數 1627 閱讀 7974

python任何變數都有其特定的作用域

在函式內部的變數一般只能在函式內部使用, 這些只能在程式特定的區域使用的變數稱為區域性變數.

在乙個檔案頂部,在函式的外部定義的變數, 可以供該檔案的任何函式呼叫, 這樣的變數稱為全域性變數

區域性變數和全域性變數的關係

區域性變數可以通過global關鍵字強制宣告為全域性變數.

在函式中用global關鍵字強制宣告為全域性變數,在函式外面使用該全域性變數之前, 必須先呼叫該函式, 如下面的例子

#!/usr/bin/python

#coding:utf8

i = 10

deffun

(): i = 100

print

"i = ", i

fun()

print

"-"*20

print

"i = " , i #因為函式中的i是區域性變數所以這裡的還是10

print

"-"*20

s1 = "hello world"

deffun2

(): s2 = " welcome to china"

global s2

print s2

print s1+s2 # 這裡會報錯, 區域性變數s2通過global強制宣告為全域性變數,函式外部使用s2之前, 必須先呼叫該函式

fun2()

print

"-"*20

print s1+s2 # 這裡使用s2是可以的

以上的**的輸出結果(第20行注釋之前的結果):

python 10.py 

10.py:17: syntaxwarning: name 's2' is assigned to before global declaration

global s2

i = 100

--------------------

i = 10

--------------------

traceback (most recent call last):

file "10.py", line 20, in

print s1+s2 # 這裡會報錯, 區域性變數s2通過global強制宣告為全域性變數,函式外部使用s2之前, 必須先呼叫該函式

nameerror: global name 's2' is not defined

以上的**的輸出結果(第20行注釋之後的結果):

python 10.py 

10.py:17: syntaxwarning: name 's2'

global s2

i = 100

--------------------

i = 10

--------------------

welcome to china

--------------------

hello world welcome to china

作用域,變數作用域,作用域鏈知識

第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...

變數作用域

1 全域性變數 定義在函式外邊的變數,通常函式是無法直接獲取到外部變數的,需要獲取時得需要在函式裡加global方法 例如在外部定義乙個a 5 fu ncti onte st sum 此時是無法直接獲取到a的 方法就 是 fu ncti onte st sum echo test 2 靜態變數 st...

變數作用域

變數分為全域性變數和區域性變數,在函式內部定義的變數,這個變數只在函式內部有用,在全域性中是無效的。上面雖然定義了a,但是他是區域性變數,所以沒有輸出結果。在函式外部定義的變數,可以在函式內部使用的,也可以在全域性使用。上面定義的全域性變數a,所以函式內部也可以使用。輸出結果為兩次都是1.既然有全域...