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

2021-03-21 15:56:07 字數 4937 閱讀 3757

1樓:雪v歌

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

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

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

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

def example(a):

a=0return a

a=1print example(a)

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

python global 定義全域性變數, 解析python函式變數如何使用

2樓:匿名使用者

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

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

使用global語句

如果你想要為一個定義在函式外的變數賦值,那麼你就得告訴python這個變數名不是區域性的,而是 全域性 的。我們使用global語句完成這一功能。沒有global語句,是不可能為定義在函式外的變數賦值的。

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

python 在函式裡面定義的變數,在外面就不能用了?我不是很想用global

3樓:匿名使用者

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

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

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

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

def example(a):

a=0return a

a=1print example(a)

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

4樓:智應

注意縮排對齊

def example():

a = 0

print a

while, for也是一樣,沒有大括號所以對齊決定**是函式或迴圈的結束

5樓:匿名使用者

要注意變數的作用域。

你可以def example():

a = 0

return a

print example()

python中函式外定義的變數在函式內可以使用嗎

6樓:匿名使用者

你寫的只是引用,也可以說讀取是可以的,但不能修改。

比如這樣寫,外面的i 仍然=0

7樓:反翽葚讛笀仕藖

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

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

儘量不要使用全域性變數,也不要使用預設值。一個正規的做法是這樣: def example(a):

a=0 return a a=1 print example(a) 這是一個標準用法,你就不用為global變數頭痛了。

python中是如何實現將一個函式中定義的變數在另一個函式中改變其值的

8樓:wxc一塊錢

python用列表名給變數賦值時給的是地址,就像c裡指標一樣。想要實現傳值用copy包

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

9樓:天蠍神經俠侶

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

g..比如

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

定義一個全域性變數

然後在定義一個函式

def xx()

global g

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

解決方案1:

global g 去掉 試試

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

10樓:往往

去掉global g

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

11樓:匿名使用者

global g 去掉 試試

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

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

12樓:月黑風高殺人區

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

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

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

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

13樓:自我程式設計

global是用於宣告全域性

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

簡單說:

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

python 怎麼從定義的函式之外呼叫其中的變數

14樓:龍氏風采

# -*- coding:utf8 -*-

from tkinter import *

from tkfiledialog import

askopenfilename

root = tk()

root.title()

root.geometry()

def open_file():

file_path = askopenfilename(filetypes=(("files", "*.txt"),("all files", "*.*")))

t.insert(end, file_path +'\n')

print file_path

print file_path

t = text()

t.pack()

button(root, text="open file",***mand=open_file).pack()

root.mainloop()

按你的思路來啊,首先說為什麼會報錯。。你發現你定義了一個open_file函式之後就直接print file_path了嘛,可是這個時候file_path還沒定義誒。。然後你這個file_path是一個區域性變數,想要在函式外部使用必須global。。

# -*- coding:utf8 -*-

from tkinter import *

from tkfiledialog import askopenfilename

root = tk()

root.title()

root.geometry()

file_path = askopenfilename(filetypes=(("files", "*.txt"),("all files", "*.*")))

def open_file():

global file_path

t.insert(end, file_path +'\n')

print file_path

print file_path

t = text()

t.pack()

button(root, text="open file",***mand=open_file).pack()

root.mainloop()

所以**就成了這樣

15樓:

用def關鍵字,括號裡是引數列表def add(a, b): return a+b#下面呼叫print add(1, 2)

16樓:匿名使用者

這涉及到變數的生命週期問題,一般的,在函式裡面宣告的變數在函式外是不起作用的。

一個比較簡單的解決辦法是你在函式外就先宣告這個變數,宣告成全域性變數。然後在函式裡面進行操作和賦值。

最後就能在函式外獲取變數的值了。例如:

x = 0

def a():

x = 2

if __name__ == '__main__':

a()print x

最終x列印出來的結果就是2

17樓:匿名使用者

def test():

global x

x=2test()

print(x)

加global就可以

python如何在函式中呼叫另函式返回的多個

不需要的值用 代替。例如,只要b的值 b return 你的bai意思是 函式值返回值直接放du到另一個函zhi數當參dao數吧實際上可以回變通一下,返回答的是元組,然後怎麼拿到元組中的一個最簡單的就是使用 如果 return a,b,c 想拿到b使用 fun 1 下標從0開始 你可以用3個變數去接...

python定義函式問題,Python中關於def定義函式的一些問題

2 a 少了括號,應該是 2.0 a 用def關鍵字,括號裡是引數列表 def add a,b return a b 下面呼叫 print add 1,2 python中關於def定義函式的一些問題 10 引數也屬於函式內的一個區域性變數,引數的值由函式的呼叫者傳遞。x是自定義的函式引數變數,代表函...

Python中如何把list中的數字從大到小排列(不用reversed(sorted(list))

既然有排copy 序現成的演算法bai不du 怎樣用python將陣列裡的數從高到低排序 1 首先我們定義一個列表輸入一串大小不一的數字。2 可以用sort 方法對定義的列表排序,注意,sort只是對列表排序,它沒有返回一個值。3 輸入print列表名即可得到排序後的列表資料。4 倒序可以用這個re...