通過global關鍵字把區域性變數轉換為全域性變數
num =
10def
demo1()
("demo1"
+"-"*50
)# global 關鍵字,告訴 python 直譯器 num 是乙個全域性變數
global num
num =
100print
(num)
defdemo2()
("demo2"
+"-"*50
(num)
# demo1() # 輸出 100
demo2(
)# 輸出10
("over"
)
def
measure()
:"""返回當前的溫度"""
("開始測量..."
) temp =
39 wetness =
10print
("測量結束..."
)return temp, wetness
temp, wetness = measure(
(temp)
(wetness)
解法 1 —— 使用其他變數
# 解法 1 - 使用臨時變數
c = b
b = a
a = c
解法 2 —— 不使用臨時變數
# 解法 2 - 不使用臨時變數
a = a + b
b = a - b
a = a - b
解法 3 —— 異或運算
a = a ^ b
b = a ^ b
a = a ^ b
解法 4 —— python 專有,利用元組
a, b = b, a
def
demo
(num, num_list)
("函式內部**"
)# num = num + num
num += num
# num_list.extend(num_list) 由於是呼叫方法,所以不會修改變數的引用
# 函式執行結束後,外部資料同樣會發生變化
num_list += num_list # 注意: python中的列表+=是在原有集合上操作,要區別於scala
(num)
(num_list)
("函式**完成"
)gl_num =
9gl_list =[1
,2,3
]demo(gl_num, gl_list)
(gl_num)
(gl_list)
def
demo
(num,
*args,
**kwargs)
:print
(num,
type
(num)
)print
(args,
type
(args)
)print
(kwargs,
type
(kwargs)
)demo(1,
2,3,
4,5, name=
"小明"
# 需要將乙個元組變數/字典變數傳遞給函式對應的引數
gl_nums =(1
,2,3
)gl_xiaoming =
# 沒有拆包,會把兩個元素全部傳給tuple, 而字典裡面是空的
demo(gl_nums, gl_xiaoming)
# 進行了拆包,會把相應的元素傳遞給tuple和dict
python中全域性變數
在python中,全域性變數一般有兩種使用方式 第一種 是在乙個單獨的模組中定義好,然後在需要使用的全域性模組中將定義的全域性變數模組匯入。第二種 直接在當前的模組中定義好,然後直接在本模組中通過global宣告,然後使用 具體的方法如下所示 第一種 solr url def tt global s...
PHP中全域性變數和超全域性變數
自定義全域性變數的作用域為當前的指令碼檔案的任意位置 函式或者方法啊之類的 但是要想用它們必須先執行一下 global variable語句 variable為要使用的全域性變數 或者是使用 global 變數名字 來呼叫。超全域性變數作用於也是為當前的指令碼檔案的任意位置,在使用的時候無需先執行 ...
Python中的全域性變數
全域性變數不符合引數傳遞的精神,所以,平時我很少使用,除非定義常量。今天有同事問乙個關於全域性變數的問題,才發現其中原來還有門道。程式大致是這樣的 constant 0 def modifyconstant print constant constant 1 return if name main ...