python按值傳遞引數和按引用傳遞引數:
按值傳遞引數:
使用乙個變數的值(數字,字串),放到實參的位置上
注:傳遞過去的是變數的副本,無論副本在函式中怎麼變,變數的值都不變
傳遞常量:
#傳遞常量
#定義乙個函式,輸出 歡迎,接收到的引數 name
defhuanying(name):
print("歡迎"
,name)
huanying("小明
")#歡迎 小明
#定義乙個求長方形面積的函式,要求具有返回值且引數為 height 和 width
defarea(height,width):
return height *width
mianji = area(5,4)
(mianji)
#20
傳遞變數:
#傳遞變數
#定義乙個函式,輸出 歡迎,接收到的引數 name
defhuanying(name):
print("歡迎"
,name)
strs_name = "小明"
huanying(strs_name)
#歡迎 小明
#定義乙個求長方形面積的函式,要求具有返回值且引數為 height 和 width
defarea(height,width):
return height *width
height = 5width = 4mianji =area(height,width)
(mianji)
#20
按引用傳遞:
輸出 列表、元組 和 集合所有元素的總和
#按引用傳遞
lst = [1,2,3,4]
tuple_1 = (4,5,7)
se =
defadd(args):
'''將 args 中的元素總和輸出
(sum(args))
add(lst)#10
add(tuple_1)#16
add(se)#28
#輸出程式的注釋
print(add.__doc__)#
將 args 中的元素總和輸出
使用函式,將引數引用傳遞輸出引數中的奇數
#按引用傳遞
lst = [1,2,3,4]
tuple_1 = (4,5,7)
defjishu(args):
'''將 args 中的奇數輸出
'''for i in
range(len(args)):
if args[i] % 2 == 1:
print(args[i], end = "")
()jishu(lst)
#1 3
jishu(tuple_1)
#5 7
#輸出程式的注釋
print(jishu.__doc__)#
將 args 中的奇數輸出
如果引數發生修改
1.原引數如果為可變型別(列表、集合、字典)則也跟著修改
2.原引數如果為不可變型別(數字、字串、元組)則不發生改變
示例:
列表在函式中呼叫方法,列表本身發生改變
defadd_elem(args,string):
'''將 lst_num 新增到 args 中
'''
#args += string
#args.extend(string)
#args.insert(len(args),string)
return
args
lst = [1,2,3,4]
string = "
abc"
(add_elem(lst,string))
#[1, 2, 3, 4, 'a', 'b', 'c']
(lst)
#[1, 2, 3, 4, 'abc']
在函式中,如果列表作為實參,形參發生修改時,列表值發生改變
defadd_elem(args,string):
'''將 lst_num 新增到 args 中
'''args[len(args)-1] =string
return
args
lst = [1,2,3,4]
string = "
abc"
(add_elem(lst,string))
#[1, 2, 3, 'abc']
(lst)
#[1, 2, 3, 'abc']
2020-02-11
Python函式引數 按值傳遞和按引用傳遞
首先簡單說明一下,python中按值傳遞與按引用傳遞的區別 按值引數傳遞是指乙個變數的值來取代乙個函式引數的做法。如果這個值在函式 組中改變,對於呼叫這個函式的 來說,其中相應的變數值並不會受到任何影響,可以把這個引數認為是原變數值的乙個副本。按引用引數傳遞是指對於呼叫這個函式的 會維護這個 中變數...
scala 引數傳遞 按值傳遞 按名傳遞
package leetcode import scala.util.random object function args def getrandom call by name 按名傳遞,傳入引數變數名,如果runbyname內部用到,再去求值 f string int long表示 該無參函式的...
按值傳遞和按引用傳遞
對於基本型別而言,是按值傳遞的 基本型別儲存在棧中 基本型別引數的傳遞和基本型別的複製一樣,傳遞的是值本身 var a 1 function test x test a console.log a 1按值傳遞的意思就是形參是實參的複製,形參實參互不干擾 so,雖然在函式test中a被修改,但是並沒有...