python3 8裡可以在函式中定義變數嗎

2021-04-12 18:06:58 字數 4132 閱讀 2305

1樓:英語好難學

flag=0是全域性變數,可以用在函式外,也可以用在函式內,如果你是函式內定義,則外面的if flag會訪問不到而報錯。(話說,你的while是不是少了一個break)

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

2樓:匿名使用者

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

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

3樓:反翽葚讛笀仕藖

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

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

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

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

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

4樓:月黑風高殺人區

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

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

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

python的函式裡還可以定義函式嗎

5樓:匿名使用者

這個肯定可以的。閉包、裝飾器都是在函式裡又定義了個函式,普通的函式也是可以巢狀定義的。

6樓:可靠的我心我在

7樓:匿名使用者

定義函式。在函式裡呼叫其他函式。

python類中定義的變數不能給函式用?

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

8樓:wxc一塊錢

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

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

9樓:龍氏風采

# -*- 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",command=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",command=open_file).pack()

root.mainloop()

所以**就成了這樣

10樓:

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

11樓:匿名使用者

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

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

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

x = 0

def a():

x = 2

if __name__ == '__main__':

a()print x

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

12樓:匿名使用者

def test():

global x

x=2test()

print(x)

加global就可以

python中怎麼把一個函式定義為另一個函式的變數

13樓:可靠的我心我在

def a(n):

print n

def b(c):

print c

b(a(2))

可以這樣子用,只是不知道你的應用場景是什麼?有這樣的要求因為你可以直接在b函式呼叫a函式

def b():

a(2)

14樓:匿名使用者

可以,然後在adc2裡面直接adc1()就可以呼叫adc1這個函式了

15樓:

題主要表達的是這樣意思吧?

def abc1(x):

...def abc2(x, y):

z = x(y)

...if __name__=='__main__':

abc2(abc1, 1)

16樓:戢玉花恭午

例如一個函式內有一個變數i,怎麼在函式外或另一個函式中呼叫或更改它。新手學習,謝謝。

******************************

不能在函式外更改某函式裡的區域性變數,因為每當你例項化那個函式的時候,那個函式裡面的區域性變數也會被重新賦值,重新定義,談何更改呢?

這一個全部變數和區域性變數的問題,如果要實現樓主說的,必須使用全域性變數(類中的self):

***************=bianliang.py**********=

#coding:

utf-8i=

0#定義一個全域性變數i

defa():

'''列印出i的值

'''print

idef

b():

global

ia()

#呼叫a方法

print

i#列印ii=

1000

#重新賦值i

print

i#列印i

a()#再次呼叫a方法

b()******************************===

%python

bianliang.py00

1000

1000

這個py檔案裡面使用了一個全域性變數i,實現了a方法和b方法共用引數i

python中同類的函式怎麼呼叫另函式裡的資料

a 不是return了它麼 def c dic a 現在列印dic吧 study.a 前面加上類的全名就行了 python中同一個類的函式怎麼呼叫另一個函式裡的資料 如果是同bai一包裡面,直du接就可以使用,如zhi果不是同一個包,那麼需要先daoimport後,通過 包名.類名回 才能使用。答下...

Python裡為什麼函式可以返回函式內部定義的函式

你這是物件導向的思想,應該使用class一個類,而不是def一個函式了 python 裡為什麼函式可以返回一個函式內部定義的函式 沒有複製,函式也是個物件,基本就和你 return 一個 list 一個 dict 沒什麼兩樣。試試看在 python repl 中建立一個 function def f...

Python中函式在類的之下定義的呼叫問題

ball是一 個抄類,類定義 在 最前襲面 myball ball ball 生成 一個ball類的例項,myball是一個ball類例項myball.bounce 呼叫 類方法bounce python 在一個類中函式呼叫可以在函式定義之前嗎 兩種位置都試一下唄,程式設計需要有探索的勁兒,不然文件...