第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python函數(shù)通過(guò)引用調(diào)用

Python函數(shù)通過(guò)引用調(diào)用

元芳怎么了 2019-08-26 14:56:12
Python函數(shù)通過(guò)引用調(diào)用在某些語(yǔ)言中,您可以使用特殊的保留字(如ref或val)通過(guò)引用或值傳遞參數(shù)。當(dāng)您將參數(shù)傳遞給Python函數(shù)時(shí),它永遠(yuǎn)不會(huì)在離開(kāi)函數(shù)時(shí)改變參數(shù)的值。唯一的方法是使用全局保留字(或者我當(dāng)前理解它)。例1:k = 2def foo (n):      n = n * n     #clarity regarding comment below      square = n      return squarej = foo(k)print jprint k會(huì)表現(xiàn)出來(lái)>>4>>2顯示k是不變的在此示例中,變量n永遠(yuǎn)不會(huì)更改例2:n = 0def foo():     global n     n = n * n     return n在此示例中,變量n已更改在Python中是否有任何方法可以調(diào)用函數(shù)并告訴Python 參數(shù)是值還是引用參數(shù)而不是使用全局?其次,在A級(jí)劍橋考試,他們現(xiàn)在說(shuō)一個(gè)函數(shù)返回一個(gè)單一而過(guò)程返回值超過(guò)一個(gè)值。在80年代,我被教導(dǎo)了一個(gè)函數(shù)有一個(gè)返回語(yǔ)句,而程序沒(méi)有。為什么現(xiàn)在不正確?
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

你不能通過(guò)Python中的引用傳遞一個(gè)簡(jiǎn)單的原語(yǔ),但是你可以做以下事情:

def foo(y):
  y[0] = y[0]**2x = [5]foo(x)print x[0]  # prints 25

然而,這是一種奇怪的方式。請(qǐng)注意,在Python中,您還可以返回多個(gè)值,使得一些用于傳遞引用的用例不那么重要:

def foo(x, y):
   return x**2, y**2a = 1b = 2a, b = foo(a, b)  # a == 2; b == 4

當(dāng)您返回這樣的值時(shí),它們將作為元組返回,而元組又被解壓縮。

編輯: 另一種思考方式是,雖然您無(wú)法通過(guò)Python中的引用顯式傳遞變量,但您可以修改傳入的對(duì)象的屬性。在我的示例(和其他)中,您可以修改列表的成員但是,你不能完全重新分配傳入的變量。例如,看到以下兩段代碼看起來(lái)可能會(huì)做類(lèi)似的事情,但結(jié)果會(huì)有不同的結(jié)果:

def clear_a(x):
  x = []def clear_b(x):
  while x: x.pop()z = [1,2,3]clear_a(z) # z will not be changedclear_b(z) # z will be emptied


查看完整回答
反對(duì) 回復(fù) 2019-08-26
  • 3 回答
  • 0 關(guān)注
  • 976 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)