五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

淺談Python中的函數(shù)(def)及參數(shù)傳遞操作

發(fā)布日期:2022-04-11 18:46 | 文章來源:腳本之家

如下所示:

#抽象 (函數(shù))
 
# 1、callable  判斷一個對象是否可以被調(diào)用
x = 1
def y():
 return None
callable(y)  # y可以被調(diào)用
callable(x)  # x不可以被調(diào)用
 
 
# 2、當(dāng)函數(shù)沒有return時函數(shù)將默認(rèn)返回None
# 3、放在函數(shù)開頭的字符串成為文檔字符串如下:
def square(x):
 'my name is hexianmin'#這個為文檔字符串將作為函數(shù)的一部分存儲起來
 return x*x
 
# 4、函數(shù)中的 '傳值'  和  '傳地址' 切片列表產(chǎn)生的是一個相等但不相同的副本(即兩個列表存儲地址不一樣)
# 傳值:調(diào)用函數(shù)時傳 變量eg: x = 1change(x)
# 傳地址:調(diào)用函數(shù)時傳  列表(在這里說明:元組不可以改變  傳過去也不能修改)eg: x = list('pyhon')change(x)
 
 
# 函數(shù)參數(shù) :?。?、位置參數(shù)   2、關(guān)鍵字參數(shù)  
# 1、位置參數(shù) :實參與形參的對應(yīng)關(guān)系為 '一一對應(yīng)' 的關(guān)系  實參的前后位置決定了形參接到的值
# 2、關(guān)鍵字參數(shù) :由指定關(guān)鍵字去給形參傳值(或者傳地址)  像字典一樣 key-value 的對應(yīng)關(guān)系
# 注意: 1、二者不可以沖突2、關(guān)鍵字參數(shù)和位置參數(shù)可以混在一起用,優(yōu)先關(guān)鍵字參數(shù),剩下的按照位置一一對應(yīng)
 
 
#  *  /  **  的妙用 :收集參數(shù)  和分配參數(shù)的作用
# 收集參數(shù):*  : 將  多余的  一般的對象(位置參數(shù),字典也將作為位置參數(shù))收集成元組類型 ** : 將  多余的  關(guān)鍵字參數(shù)  收集為字典類型
# 分配參數(shù):*  : 將元組類型的參數(shù)分配給形參 ** : 將字典類型的參數(shù)分配給形參
 
 
# 收集參數(shù):
def print_params_1(x, y, z=3, *pospar, **keypar):  #注意這里的 z=3 是給z賦一個默認(rèn)值  當(dāng)調(diào)用函數(shù)時沒有給z賦值時使用  但是一旦調(diào)用時給z賦值了  z就不用默認(rèn)值了
 print(x, y, z)
 print(pospar)#在函數(shù)里面使用時 : 1、不帶星號(*) 是 一個元組2、帶星號(*) 是 取元組中的每個值出來
 print(keypar)#在函數(shù)里面使用時 : 1、不帶星號(**) 是 一個字典(但是取不了值出來)  2、帶一個星號(*) 是 取字典中的每個關(guān)鍵字(key)出來3、帶兩個星號 會報錯
print_params_1(1, 2, 4, 5, 6, 7, foo=1, bar=2)
 
 
# 分配參數(shù):
def foo(x, y, z, m=0, n=0):
 print(x, y, z)
 print(m)
 print(n)
 return -1
def call_foo(*args, **kwds):  #收集參數(shù)
 print('calling foo!')
 foo(*args, kwds)#分配參數(shù)這里如果用foo(*args, **kwds)  **kwds會報錯
x1 = 1
y1 = 2
z1 = 3
d = {
 'm1': 4,
 'n1': 5
}
print(call_foo(x1, y1, z1, d1=1, d2=2))  #調(diào)用的時候  一個字典是作為一個位置參數(shù)的  
 
 
 
# 作用域 :1、全局變量 2、局部變量
 
# 注意: 在局部函數(shù)(局部函數(shù)中默認(rèn)變量都是局部變量)中使用全局變量: 1、只使用一次(且重名了)2、聲明后使用(聲明后就是全局變量了)
# 1、只使用一次(且重名了):
para = 1
def combine(para):
 print(para,globals()['para']) # globals()['para']
combine(2)
 
# 2、聲明后使用(聲明后就是全局變量了):
xx = 2
def change_global():
 global xx  #聲明后就是全局變量了
 xx = xx +2
 print(xx)
change_global()
 
# 3、vars(): 賦值其實是一個看不見的字典使用后返回的就是一個字典
x11 = 1
x22 = vars() 
print(x22['x11'])
 
# 4、 vars()  globals()locals()  使用后都是返回一個字典
 
 
# 作用域嵌套
def multi(fac):
 def multiFac(num):# multiFac(num)函數(shù)被稱為 : 閉包
  return num * fac
 return multiFac
dou = multi(2)#返回的 dou 現(xiàn)在是一個函數(shù)( multiFac(num)函數(shù) )
dou(3)  #這樣相當(dāng)于調(diào)用 multiFac(3)
 
 
# list(map(str,range(10)))  與  [str(i) for i in range(10)]  是等價的
# filter(lambda x: x.isalnum, seq)  
#from functools import reduce reduce(lambda x,y: x+y, numbers)
 
# mapfilterreduce  

補充:python參數(shù)傳遞問題(參數(shù)傳出)

變量、對象與類型關(guān)系

python是動態(tài)類型語言,并不需要預(yù)先聲明變量類型,變量的類型和值在賦值的那一刻完成初始化。進(jìn)一步說,python中的類型是屬于對象的,而不是變量。

例如:

a=2
b=[1,2]

分別表示把一個int對象2,賦值給a;把一個list對象[1,2]賦值給b。

也就是說在將不同類型的python對象通過賦值號賦給某一個變量時,才完成該變量的初始化,而使得該變量代表某種類型的對象。

函數(shù)

不可更改參數(shù)傳遞

如果想進(jìn)行參數(shù)傳遞,那么在python 中的定義函數(shù)之前,必須對參數(shù)的變量進(jìn)行聲明,否則會出現(xiàn)提示global name 'abun1' is not defined,當(dāng)然,該變量的聲明過程可以是隱式的進(jìn)行。

例如a=2或者a={},在對a進(jìn)行賦值的那一刻完成變量的類型初始化,也即是完成變量的聲明。

但是,尤其需要注意的是,python中的int,long, bool, float,tuple() 等對象都是不能更改的,因此,在參數(shù)傳遞時,不能傳遞輸出這些類型的變量。

例如:

def tmpF(a):
 a=10
nint=2
tmpF(nint)
print(nint) #結(jié)果仍是2

因為,變量nint代表一個整型對象2,調(diào)用函數(shù)tmpF()時,因整型對象無法改變,那么新建了一個整型對象10,使a指向它,因此nint代表的整型對象仍舊是2,沒有發(fā)生改變。

可更改參數(shù)傳遞

如果在定義函數(shù)時,想利用參數(shù)輸出某些處理過的變量,那必須使用可以更改的對象,如list,dict等。

例如:

def tmpF(a):
 a.append(2)
nx=[]
tmpF(nx)
print(nx) #nx=[2]

因為,list是可更改類型對象,因此,在調(diào)用函數(shù)tmpF()時,對該list型對象進(jìn)行了修改,而nx指向的仍舊是這個對象。

所以,函數(shù)可以通過可變類型對象,將參數(shù)輸出。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持本站。

香港服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部