1樓:一豬之哀傷一
例如一個函式內有一個變數i,怎麼在函式外或另一個函式中呼叫或更改它。新手學習,謝謝。
******************************
不能在函式外更改某函式裡的區域性變數,因為每當你例項化那個函式的時候,那個函式裡面的區域性變數也會被重新賦值,重新定義,談何更改呢?
這一個全部變數和區域性變數的問題,如果要實現樓主說的,必須使用全域性變數(類中的self):
***************=bianliang.py**********=
#coding: utf-8
i = 0 #定義一個全域性變數i
def a():
'''列印出i的值
'''print i
def b():
global i
a() #呼叫a方法
print i #列印i
i = 1000 #重新賦值i
print i #列印i
a() #再次呼叫a方法
b()******************************===
%python bianliang.py00
1000
1000
這個py檔案裡面使用了一個全域性變數i,實現了a方法和b方法共用引數i
2樓:細雨搖琴
用閉包再來看看專業的解釋:閉包(closure)是詞法閉包(lexical closure)的簡稱,是引用了自由變數的函式。這個被引用的自由變數將和這個函式一同存在,即使已經離開了創造它的環境也不例外。
所以,有另一種說法認為閉包是由函式和與其相關的引用環境組合而成的實體。
def make_adder(addend):
def adder(augend):
return augend + addendreturn adder
p = make_adder(23)
q = make_adder(44)print p(100)print q(100)
執行結果:
123144
python中怎麼把一個函式定義為另一個函式的變數
3樓:可靠的我心我在
def a(n):
print n
def b(c):
print c
b(a(2))
可以這樣子用,只是不知道你的應用場景是什麼?有這樣的要求因為你可以直接在b函式呼叫a函式
def b():
a(2)
4樓:匿名使用者
可以,然後在adc2裡面直接adc1()就可以呼叫adc1這個函式了
5樓:
題主要表達的是這樣意思吧?
def abc1(x):
...def abc2(x, y):
z = x(y)
...if __name__=='__main__':
abc2(abc1, 1)
6樓:戢玉花恭午
例如一個函式內有一個變數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中怎麼在自定義函式呼叫另外一個函式中的引數
7樓:匿名使用者
>>> def a():
global q
q=1+2
return q
>>> def b():
a()c=2+q
print(c)
>>> b()
5>>> q
3函式中的變數在外面呼叫,需要申明為全域性變數
python如何讀取另一個py程式裡類中函式的變數值 10
8樓:匿名使用者
把all_functions放到你需要呼叫的py檔案的同級目錄用from all_functions import *這樣,all_functions中有方法test()那麼你可以直接呼叫test()
python 怎麼在 下一個函式中 呼叫上一個函式的值
9樓:暴暴鹿兒
你的問題:
你先定義了一個函式;
然後在呼叫一個函式,但是定義過程中你的函式是有返回值的,呼叫的話,你應該用一個變數去「放」這個值;所以這裡get(5,6)看不到任何輸出;
如下:def shan():
...rsult=get(a,b)
print result
...或者直接print get(a,b)
10樓:匿名使用者
這裡利用《python程式設計入門》書中的例子作為事例說明:
def get_omelet_ingredients(omelet_name):
ingredients =
if omelet_name=="cheese":
ingredients["cheddar"]=2
elif omelet_name=="western":
ingredients["jack_cheese"]=2
ingredients["ham"]=1
ingredients["pepper"]=1
ingredients["onion"]=1
elif omelet_name=="greek":
ingredients["feta_cheese"]=2
ingredients["spinach"]=2
else:
print("that's not on the menu, sorry!")
return none
return ingredients
def make_food(ingredients_needed, food_name):
for ingredient in ingredients_needed.keys():
print("adding %d of %s to make a %s" %(ingredients_needed[ingredient], ingredient, food_name))
print("make %s" %food_name)
return food_name
def make_omelet(omelet_type):
if type(omelet_type)==type({}):
print("omelet_type is a dictionary with ingredients")
return make_food(omelet_type, "omelet")
elif type(omelet_type)==type(""):
omelet_ingredients = get_omelet_ingredients(omelet_type)
return make_food(omelet_ingredients, omelet_type)
else:
print("i don't think i can make this kind of omelet: %s" % omelet_type)
"""利用make_omelet函式呼叫get_omelet_ingredients和make_food函式的值"""
omelet_type=make_omelet("cheese")
11樓:匿名使用者
a=get(1,2) # 賦值給a
print(get(1,2)) #或者直接輸出
python一個檔案呼叫另一個檔案中函式的變數
12樓:盜墓者
可以,把需要呼叫的那個檔案作為模組匯入就行。
from xx(檔名,注意不要加字尾.py) import *
這樣就把xx檔案裡的變數匯入進主程式了,然後直接用xx檔案裡的變數就行
python同一個類內兩個函式變數怎麼呼叫
13樓:育知同創教育
classa():
self.b1 = 0
def b(self):
self.b1=123
def c(self):
c1=self.b1+5
print c1
14樓:厚憐雲賴頌
如果是同一包裡面,直接就可以使用,如果不是同一個包,那麼需要先import後,通過「版包名.類名」才能使用。
下面權是同一個包裡面的案例:
defa():
print(1)
defb():
a()print
(2)b()
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中怎麼呼叫自定義函式
網上的很多資料都是說 如果把my abs 的函式定義儲存為abstest.py檔案了,那麼,可以在該檔案的當前目錄下啟動python直譯器,用from abstest import my abs來匯入my abs 函式,注意abstest是檔名 不含.py副檔名 但是在嘗試這種方法後,發現仍然還是無...