鍍金池/ 問答/Python  數(shù)據(jù)庫/ 【python小白】 問如何在函數(shù)內(nèi)部定義全局變量

【python小白】 問如何在函數(shù)內(nèi)部定義全局變量

如圖所示:

clipboard.png
紅色箭頭位置,我想在定義的函數(shù)內(nèi)部,在執(zhí)行函數(shù)的時(shí)候定義一個(gè)全局變量,于是我在定義變量的前面加上了global
但是執(zhí)行的時(shí)候說我錯誤,錯誤如下:

clipboard.png
說我不能這樣定義,我想問,那我應(yīng)該如何定義呢?

回答
編輯回答
傲嬌范

你在函數(shù)內(nèi)部只能定義局部變量,不能定義全局變量;但可以聲明全局變量(也就是用 global)。
而 global 的語法是 global var_name,不能在聲明的時(shí)候賦值

2017年1月29日 06:37
編輯回答
雨蝶

你這個(gè)要求很奇怪啊,不過想要實(shí)現(xiàn)倒是很簡單的。畢竟Python是動態(tài)語言

# 全局變量列表
global_var_list = []

def update_global_var_list(var):
    global_var_list.append(var)

如果你覺得列表不行,不能設(shè)置名字那么也可以用字典

# 全局變量列表(字典)
global_var_list = {}

def update_global_var_list(var_name, var_value):
    global_var_list[var_name] = var_value

不要和老夫說什么作用域,在列表和字典里是不存在的!

2017年8月22日 23:19
編輯回答
夕顏

如果非要用global的話需要按照zuch評論的方法去做 不過這里有更好的解決辦法就是你把他作為一個(gè)函數(shù)return一個(gè)結(jié)果

2017年3月31日 23:00
編輯回答
擱淺

樓上兩種方法都行,你報(bào)錯主要是語法錯了

2017年4月12日 01:20
編輯回答
懶豬

這樣寫:
globals["varname"] = value

2017年5月9日 10:32