導航:首頁 > 編程語言 > python傳值是什麼意思

python傳值是什麼意思

發布時間:2024-10-17 09:13:57

⑴ 在python函數里,不用return,怎麼把值送出來

題主好. 如果不用 return, 我們可以選擇利用傳遞參數的引用來『把值送出來』, 但這樣只能針對不變對象, 如字典, 列表, numpy 數組等等. 例如我們可以用如下代碼修改 numpy 數組:

mat = numpy.zeros((3,3))

compute_matrix( mat )

我們可以定義函數 compute_matrix 來修改參數 mat 的值, 並在這個函數結束後返回, 可以不用 return.


附錄:

python 參數傳遞 (傳值或傳引用). 這篇博文將 python 中參數傳遞的情況, 什麼時候傳值什麼時候傳引用, 解釋地很清楚, 具體地:

⑵ Python如何向函數傳遞參數

s=[3,2,5,1]
sorted(s,reverse=True)
默認reverse=False,排序為正序。傳入reverse=True,排序就是倒序

⑶ Python中不定長參數這樣用對嗎def hh(w,**l,pu='d'): 為什麼

題主你好,

一般來說, python函數中有兩種形式的參數: 位置參數, 關鍵字參數.

位置參數: 說白了就是在函數調用時必傳的,你不給它賦值函數就運行不了.如:

按照之前講的,調用person時,age必須要傳值,name可傳可不傳,所以調用形式可以是:

person(18), 也可以是person(18,"李四") //同時把參數名加上進行調用也可以,即person(age=18,"李四"), person(age=18, name="李四"), person(18,name="李四")這都是合法的,當然如果看著亂,記住一種就好.

**.還有一點需要注意函數定義中,位置參數一定要位於關鍵字參數前,也就是說def person(name="張三",age)這么寫是錯誤的(對於這條約定我是這么理解的, 你想啊假如位置參數位於關鍵字參數前是可行的,則我們在調用person時,即使name就是默認值"張三",我們也要傳值, 因為如果你這么寫,person(18),則18會傳給person的第一個參數name,如果你寫person("張三",18)又麻煩了,因為name的默認值就是"張三', 但我覺得使用person(age=18)還可以理解呀,不管怎麼樣吧,記住規矩就是這樣的.).

-----

下面就該引出題主問題中所謂的"不定長參數"了. 我感覺叫"任意數量的參數"更好理解一些,因為重點在於數量,而不在於長度.//至少如果我沒有看到你的實際題目,你說"不定長參數"我會理解為一個參數的值的長度不限, 而非可以有任意多個參數.

為了迎合題主, 下面就稱"不定長參數"吧.

python中一般不定長參數有兩種類型,位置不定長參數關鍵字不定長參數, 其外在特徵是:

位置不定長參數由一個星號+變數名組成: *var //var是我隨意寫的,可以是*a,*b,*any等

關鍵字不定長參數由兩個星號+變數名組成: **key //同理,key也可以是任意名稱.

-----

不定長參數的出現其實就是為了增加函數的靈活性, 這個靈活性就體現在"可以表示任意多個參數位置參數和或關鍵字參數".

-----

最後再說回題主的問題:

def hh(w,**l,pu='d')

這個用法不對, pu='d'要放在**l前面,我說下原因:

先看一下hh這個函數中的參數類型有兩種, w是位置參數; **l和pu='d'是關鍵字參數.

因此w放在最前面沒毛病(位置參數要位於關鍵字參數前面), 而為什麼pu='d'要放在**l前面呢,因為**l表示所有的關鍵字參數都要傳給l,所以如果pu='d'寫在**l後面,則pu='d'就不起作用了,因此不能這樣寫.

=====

希望可以幫到題主, 歡迎追問.

⑷ Python 不同腳本之間傳值問題

看你的需求,應該是需要顯示def2被執行。只需要print "def2"就可以了。

你可能理解有些誤差,當py2被執行時,py1的模塊是被導入到py2中,所以對於py2來說,它與py1沒有什麼關系。只是把py1的功能拿來用。拿來後就屬於py2了。只在一個進程里執行,就象是py2自己的一樣。這就是PYTHON的特點。

另外順便說一下。如果你這樣循環執行。幾乎1秒鍾,系統的棧就滿了。很可能執行不下去了。

⑸ python 函數裡面 字典復制問題

如果是我,我會在函數裡面聲明b是global的,而不是用似是而非的傳值傳指針,你這樣寫是想說b_hash傳遞的是指針,可惜python里一旦用「=」賦值就已經相當於聲明了一個新的變數,所以你的這個問題兩種解決辦法:

第一個,把你要傳指針的東西放到列表裡:

deftest(aa,bb):
bb[0]=.deep(aa)
a={1:1}
b=[{}]
test(a,b)
printb[0]

這樣保證你可以通過b這個名字找到改變後的指針。

第二個,在函數里聲明你要修改的是全局變數:

deftest(aa):
globalb
b=.deep(aa)
a={1:1}
b={}
test(a)
printb

當然,你還可以用既不是global也不是local的局部作用域,那可以說叫閉包,但有些不好懂就不說了。。。

樓上的方法思想和第一種一樣,但是沒做深層拷貝,一層for循環沒有遞歸實現了.,而不是.deep。。。

閱讀全文

與python傳值是什麼意思相關的資料

熱點內容
編譯內核必要驅動 瀏覽:742
androidstudio仿qq 瀏覽:215
mc解壓畫質 瀏覽:216
哪個app能看到自己短發的樣子 瀏覽:811
phputf8正則 瀏覽:51
php開發工具下載 瀏覽:192
java轉編碼格式 瀏覽:379
壓縮機氣缸滑片槽 瀏覽:532
java邏輯思維 瀏覽:648
在哪裡看app的內存 瀏覽:897
視頻加密什麼意思 瀏覽:863
清除網路連接命令 瀏覽:39
解壓足療店 瀏覽:285
崽崽app在哪個電視劇里出現過 瀏覽:805
pythongooglenet 瀏覽:728
編譯後生成apk 瀏覽:722
python傳值是什麼意思 瀏覽:670
江蘇在哪個app查重名 瀏覽:569
php數據鎖 瀏覽:261
京東安維app在哪裡下載 瀏覽:635