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的值
idef
b():
global
ia()
#呼叫a方法
i#列印ii=
1000
#重新賦值i
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 在一個類中函式呼叫可以在函式定義之前嗎 兩種位置都試一下唄,程式設計需要有探索的勁兒,不然文件...