python怎麼在具體函式中宣告全域性變數

2021-03-04 01:51:21 字數 5794 閱讀 6548

1樓:月黑風高殺人區

在乙個函式中用global宣告乙個變數,在函式外是可以呼叫的,

但是在另外乙個函式中就無法使用(我本地測試是無法使用,不知道是不是這樣),

要想所有函式都能使用,只能在函式外定義了

python中,如何把乙個在函式內部定義的變數變為global變數

2樓:雪v歌

嚴格的說,象你這麼用是絕對屬於沒有定義的。

不過有時候又可以是因為,如果你在程式開頭函式前面定義一些變數,原則上它會自動變成global的。 除非你另外啟執行緒,或者是有可能有與它重名的變數,否則可以直接在函式體內使用,當然也可以在後面的語句中使用。

函式式程式設計要記著ipo這個準則。就是每個函式最好都是有輸入input有輸出output。函式體就是處理process。

盡量不要使用全域性變數,也不要使用預設值。乙個正規的做法是這樣:

def example(a):

a=0return a

a=1print example(a)

這是乙個標準用法,你就不用為global變數頭痛了。

python中怎麼定義全域性變數

3樓:匿名使用者

複製**

count = 0

def fuc(count):

print count

count += 1

for i in range(0, 10):

fuc(count)

複製**

結果是:

不是我們想要的結果。

解決之道一——全域性變數:

複製**

global a

a = 3

def fuc():

global a

print a

a = a + 1

if __name__ == "__main__":

global a

for i in range(10):

fuc()print 'hello'

print a

複製**

結果:注意要領:

**需要全域性變數,**宣告一下;但是函式千萬不要傳引數, fuc(a)是不行的。

解決之道二——列表:

複製**

a = [3]

def fuc():

print a[0]

a[0] = a[0] + 1

if __name__ == "__main__":

global a

for i in range(10):

fuc()

print 'hello'

print a[0]

複製**

結果同上

列表可以比肩簡單的實現,學習之。

4樓:唯美逛

在python中,全域性變數一般有兩種使用方式: 第一種:是在乙個單獨的模組中定義好,然後在需要使用的全域性模組中將定義的全域性變數模組匯入。

第二種:直接在當前的模組中定義好,然後直接在本模組中通過global宣告

5樓:士飛薇武鈞

接下來,我們把值2賦給x。x是函式的區域性變數。所以,當我們在函式內改變x的值的時候,在主塊中定義的x不受影響。

在最後乙個print語句中,我們證明了主塊中的x的值確實沒有受到影響。

使用global語句

如果你想要為乙個定義在函式外的變數賦值,那麼你就得告訴python這個變數名不是區域性的,而是

全域性的。我們使用global語句完成這一功能。沒有global語句,是不可能為定義在函式外的變數賦值的。

你可以使用定義在函式外的變數的值(假設在函式內沒有同名的變數)。然而,我並不鼓勵你這樣做,並且你應該盡量避免這樣做,因為這使得程式的讀者會不清楚這個變數是在**定義的。使用global語句可以清楚地表明python函式變數是在外面的塊定義的。

在子函式中如何使用全域性變數?

6樓:匿名使用者

1、全域性變數就是貫穿全域性的變數,若函式中出現了再定義的與全域性變數相同形

專式的變數名,此時2、不是全域性屬變數,而當作區域性變數使用。

3、全域性變數不能定義在乙個函式裡。

4、全域性變數在最前面時,下面函式使用時不用宣告,函式使用下面的全域性變數時一定要宣告。

5、在編譯時,計算機給它分配儲存單元,若沒有值,則賦初值0.

6、一旦全域性變數與區域性變數重名,則以區域性變數為主。

7、全域性變數在編譯時開闢位址,區域性變數現呼叫(執行時)現開闢位址,在函式執行結束時區域性變數的位址就被釋放。

7樓:永奇箕邵美

區域性變數是函式內部定義的變數,其作用域是所在的函式。如果函式外還有一回

個跟區域性變數名答字一樣的變數,

程式會認為它們兩個是完全不同的兩個變數。當退出函式的時候,其中的區域性變數就同時被清除。

全域性變數是定義在所有函式以外的變數,其作用域是整個php檔案,但是在使用者自定義的函式內部是無法使用的。

如果一定要在使用者自定義的函式內部使用全域性變數,那麼就需要使用global關鍵字宣告。

也就是說如果在函式內的變數前加上golbal來修飾,那麼函式內部就可以訪問到這個全域性變數,

不僅可以利用這個全域性變數進行運算而且可以對這個全域性變數進行重新賦值。

python問題 我想建立乙個乙個引數的函式:引用乙個全域性變數作為引數,然後在這個函式裡面這個全域性 20

8樓:bella_鑫

全域性變數 不可以作為形參。也就是說 他不能被函式引用

可以參考一下這個**的回答:網頁鏈結

9樓:匿名使用者

給你寫一小段**。

import os,sys,time,tracebackglobal something_count_as_global #something_count_as_global = 3 #init the value

def call_many_times():

global something_count_as_global #this declare is important

something_count_as_global +=1def test():

global something_count_as_globalfor i in range(10):

call_many_times()

print something_count_as_global #expected, 3, 4, 5, ...12

if __name__=="__main__":

test()

python問題 在函式內使用全域性變數的時什麼時候需要加global,什麼時候不用?

10樓:自我程式設計

global是用於宣告全域性

變數。當你的函式中變數有賦值語句,而這個變數名又剛好同全域性變數一樣,這時候,如果你希望用的是全域性變數就要加global,反之函式就會建立自己的區域性變數。

簡單說:

函式內使用全域性變數,只要函式內沒有使用這個變數名來做賦值語句,就不需要加global。

python 怎麼定義全域性變數

11樓:雪菊鎖璧

你直接bai

定義的localvar是個全域性變

量;而dutest()這個函式中會定zhi義(或重綁dao定)全域性變數localvar為6。專

可以這樣理解:函式屬是乙個盒子,所有函式體裡定義的變數都只能在盒子裡存在。但是global關鍵字讓函式可以定義能拿到盒子外的變數(所以,如果變數名字相同,後來的賦值操作就會覆蓋之前的值,這和你在盒子外面的行為是一樣的)。

>>>defbox():

localvar=6

>>>defbox_with_a_global_var():

global

globalvar

globalvar=6

>>>localvar=5

>>>box()

>>>localvar

5>>>

box_with_a_global_var()>>>

globalvar=5

>>>globalvar5

python 中怎麼對乙個全域性的圖變數在函式中進行值修改 5

12樓:天蠍神經俠侶

為了幫助網友解決「python 中怎麼對乙個全域性的圖變數在」相關的問題,中國學網通過網際網路對「python 中怎麼對乙個全域性的圖變數在」相關的解決方案進行了整理,使用者詳細問題包括::

g..比如

import ***workx as nxg=nx...graph()

定義乙個全域性變數

然後在定義乙個函式

def xx()

global g

if ....,具體解決方案如下:

解決方案1:

global g 去掉 試試

g=nx.graph() 已經定義成全域性變數

13樓:往往

去掉global g

global 實在有區域性變數和全域性變數重名使用的,聲名成global 表明是函式外聲名的那個而不是函式內哪乙個

14樓:匿名使用者

global g 去掉 試試

g=nx.graph() 已經定義成全域性變數

15樓:匿名使用者

先在函式外試一下能不能改成功。

python2中如何簡易地將程式中所有變數都設為全域性變數?

16樓:礻斤丶

並沒有bai什麼簡易的實現方法,只du有在每個函式開頭用

zhiglobal宣告這些變數是全dao局變數,而且必須內乙個乙個輸入,如global a, b。。容

因為我覺得這種需求真的很不常見,畢竟變數的生命週期是有它的意義的。。全部都是全域性的不僅浪費記憶體還容易汙染命名空間,而且高耦合。。

另一方面,採用類或許是個不錯的方法,所有類成員變數對於這個類例項來說就是全域性的。只不過每個變數前面需要多打乙個self.。

在ruby中倒很簡單,因為ruby中的使用$開頭的變數都是全域性變數,同時全域性變數必須以$開頭。

17樓:

在程式最開頭把所有變數都定義一遍就好了

18樓:匿名使用者

你吃飽撐的,在最開始宣告不就得了

19樓:刀希烏修竹

你直接定義的

抄localvar是個全域性變數襲;而test()這個函式中會定義(或重繫結)全域性變數localvar為6。

可以這樣理解:函式是乙個盒子,所有函式體裡定義的變數都只能在盒子裡存在。但是global關鍵字讓函式可以定義能拿到盒子外的變數(所以,如果變數名字相同,後來的賦值操作就會覆蓋之前的值,這和你在盒子外面的行為是一樣的)。

>>>defbox():

localvar=6

>>>defbox_with_a_global_var():

global

globalvar

globalvar=6

>>>localvar=5

>>>box()

>>>localvar

5>>>

box_with_a_global_var()>>>

globalvar=5

>>>globalvar5

python定義函式,在python中定義函式

params 就是 5,5 5,2 就是2個5的元組,乘號可以理解成相加。30就是30個 的字串 params作為引數,前面的 號就是把params元組分解成元素的意思,這樣就分開成為2個引數了。實際上傳遞給了x,y 於是就執行了power 5,5 在python中定義函式 涉及到狀態儲存,可以使用...

python中怎麼在函式內呼叫另外函式類似

將event.py目錄加入到版system path中權 python中怎麼在乙個函式內呼叫另外乙個函式,類 1,如果呼叫在另外乙個.py裡面的函式,先導入 py,然後呼叫2,如果在本py裡面,則把要呼叫的函式放在前面,直接呼叫,例如 def sum a,b return a b c sum 5,6...

python3中print函式在使用end時提示沒有定義 end 是怎麼回事

沒問題啊,你看語法格式對沒?或者是是不是用的python2開啟的 python3中的print t end 的作用是什麼?怎麼用?t 代表的是製表符 end 表示列印物件以什麼結尾 預設 是 n 也就是換行 在python2中直接 print t n 就行了 t 是tab的意思,它也就是列印的物件 ...