python中怎麼定義全域性變數,js中如何定義全域性變數?

2021-03-26 11:42:37 字數 6219 閱讀 5040

1樓:匿名使用者

複製**

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]

複製**

結果同上

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

2樓:唯美逛

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

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

3樓:士飛薇武鈞

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

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

使用global語句

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

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

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

js中如何定義全域性變數?

4樓:闞白司徒瑩白

1window.引數名=null;

其實主要看你在哪用

然後定義相應的全域性變數就行

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

5樓:礻斤丶

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

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

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

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

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

6樓:

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

7樓:匿名使用者

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

8樓:刀希烏修竹

你直接定義的

抄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中的本地變數(local variable)和全域性變數(global variable)分別是什麼?

9樓:尐二瓜

python中直接定義的變數就是本地變數,使用global定義的變數就是全域性變數。比如:

a = 1

b = 1

def foo1():

global b #申明使用全域性b

a = 2 #a是本地變數

b = 2 #b是全域性變數

foo1()

print a

print b

如果解決了您的問題請採納!

如果未解決請繼續追問

10樓:咋就那麼難

全域性變數能在區域性使用,但是在區域性宣告的變數不能在外部(比如迴圈外部)使用

python class裡面的全域性變數問題

11樓:匿名使用者

你在ex裡面定義的oo,所以你得先執行過ex之後才能執行start。

class  test:

def __init__(self,name='testa'):

self.x = 'age'

self.name = name

self.ex() #加上這個

self.start()

def ex(self):

global oo

oo = 'this is test'

def start(self):

print oo

t=test()

如果不適用全域性變數的話,你可以self.oo:

class  test:

def __init__(self,name='testa'):

self.x = 'age'

self.name = name

self.ex()

self.start()

def ex(self):

self.oo = 'this is test'

def start(self):

print self.oo

t=test()

12樓:匿名使用者

因為你定義oo是在self.ex(self)這個函式裡,所以在這個函式被執行前,global裡並沒有 oo這個變數。

如果你明白這個道理就知道了怎麼去列印你的oo了。

簡單的說這樣

t=test()

t.ex()

t.start()

13樓:匿名使用者

class  test:

def __init__(self,name='testa'):

self.x = 'age'

self.name = name

self.oo="this is test"

self.start()

def ex(self):

oo = 'this is test'

def start(self):

print oo

test()

python乙個模組怎樣修改另乙個模組定義的全域性變數值?

14樓:du瓶邪

(1)import 模組

模組.變數名

(2)from 模組 import 變數名,這樣可以直接使用不過不太應用後面的那種,可能會出現重名的變數,無法分辨.

15樓:匿名使用者

呼叫b中get_a():

global a

a=2return a

python中在哪些情況下必須使用global來宣告全域性變數

16樓:天天不看

以下是乙個多執行緒的python**片段,其中的x,l都是全域性變數,但在threadcode()函式中只宣告了global x沒有global l。完整的**是可以成功執行,但是把global x註釋掉後就會報錯。這是為什麼,lock物件比較特殊嗎?

[python] view plain copy

import threading, time, sys

x = 50

l = threading.lock()

def threadcode():

global x

l.acquire()

print 'thread %s invoked.' % threading.currentthread().getname()

try:

print 'thread %s running.' % threading.currentthread().getname()

x = x + 50

print 'thread %s set x to %d.' % \

(threading.currentthread().getname(), x)

finally:

l.release()

......

推廣一下,就成了在什麼情況下必須使用global宣告全域性變數的問題。這段**不用在函式中宣告global x也可以列印出x的值

[python] view plain copy

x = 20

def getx():

print x

getx()

在segmentfault上提問,得到了這樣的回答

[plain] view plain copy

對於python2而言,對於乙個全域性變數,你的函式裡如果只使用到了它的值,而沒有對其賦值(指a = ***這種寫法)的話,就不需要宣告global。相反,如果你對其賦了值的話,那麼你就需要宣告global。宣告global的話,就表示你是在向乙個全域性變數賦值,而不是在向乙個區域性變數賦值。

這樣一來就清楚了。原因想來應該是這樣,如果在函式內對乙個全域性變數賦值而沒有提前宣告的話,它會被當成乙個與全域性變數同名的區域性變數,像這樣

[python] view plain copy

x = 20

def getx():

x = 50

print x

getx()#print 50

所以如果把第一段**中的global x註釋掉,執行到x = x + 50就報錯,因為這裡的x既不是全域性變數,也沒有作為區域性變數被初始化。而對於l,因為它是乙個物件,呼叫物件成員函式和訪問普通變數的值一樣,所以也不需要事先宣告其為全域性變數,就像下面這樣。

[python] view plain copy

class a:

def __init__(self, x):

self.x = x

def setx(self, x):

self.x = x

a = a(50)

def func():

a.setx(20)

print a.x

func()#print 20

17樓:育知同創教育

你的問題中已經說了啊!就是當它作為全域性變數的時候!

舉個例子來說,當你有乙個引數在乙個方法中會被改變,如果你希望把這個改變給積累下來,而不是每一次都是從頭開始變化的話,那麼這個引數就需要宣告為全域性變數

18樓:匿名使用者

當你在乙個程式中用了它給它賦值,並且要用賦值後的它,那麼就必須要global了。本來它只是local的引用和賦值,不會影響其他程式的使用,但global之後就會影響程式外的值

Paracraft中,變數與全域性變數的定義

本地變數的作用 範圍只限當前 方塊,即使多個 方塊共用乙個電影方塊,每個 方塊的本地變數作用範圍也只是單個 方塊 如圖中第1處所示 全域性變數的作用範圍是整個世界的 方塊,在某個 方塊中定義了全域性變數並執行該 方塊後,在整個世界中建立的 方塊中都能看到該全域性變數並使用。在程式設計中是什麼意思 是...

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

在乙個函式中用global宣告乙個變數,在函式外是可以呼叫的,但是在另外乙個函式中就無法使用 我本地測試是無法使用,不知道是不是這樣 要想所有函式都能使用,只能在函式外定義了 python中,如何把乙個在函式內部定義的變數變為global變數 嚴格的說,象你這麼用是絕對屬於沒有定義的。不過有時候又可...

php全域性變數和php預定義變數

僅供參考,更多,可以檢視http www.phpsu.com 預定義變數 php 提供了大量的預定義變數。由於許多變數依賴於執行的伺服器的版本和設定,及其它因素,所以並沒有詳細的說明文件。一些預定義變數在 php 以命令列形式執行時並不生效。有關這些變數的詳細列表,請參閱預定義變數一章。warnin...