怎樣分析Python3.8中的僅位置參數(shù),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
隆林ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
Python3.8新特性的僅位置參數(shù)(Positional-Only Arguments)
函數(shù)傳遞參數(shù)的方式繁多,有位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)、命名關(guān)鍵字參數(shù)。舉個(gè)例子:
def add(x, y, *args, **kwargs):
print(f"x={x}, y={y}")
這里的 x 和 y 就是兩個(gè)位置參數(shù),我們可以這樣調(diào)用
>>> add(1, 2)
x=1, y=2
因?yàn)槭俏恢脜?shù),嚴(yán)格遵守位置順序。
不過,你也可以把 x 和 y 當(dāng)做命名關(guān)鍵字參數(shù)進(jìn)行傳遞,參數(shù)的順序可改變,例如把 y 放前面,不影響結(jié)果
>>> add(y=2, x=1)
x=1, y=2
第二種方式看似更靈活,出錯(cuò)的風(fēng)險(xiǎn)也增加了,特別是多人合作的項(xiàng)目中。
那么如何從語法層面上禁止這樣調(diào)用,避免出錯(cuò)呢?
這里就可以使用Python3.8中的僅位置參數(shù)語法了,在函數(shù)定義時(shí),參數(shù)之間可指定一個(gè)斜杠(/),斜杠前的參數(shù)嚴(yán)格遵守僅位置參數(shù)的定義,例如:
>>> def add(x, y, /, *args, **kwargs):
... print(f"x={x}, y={y}")
...
>>> add(1,2)
x=1, y=2
“/“ 告訴解釋器,x 和 y 是兩個(gè)嚴(yán)格的位置參數(shù),不能當(dāng)做命名關(guān)鍵字參數(shù)進(jìn)行傳遞。如果把它當(dāng)作命名關(guān)鍵字參數(shù)進(jìn)行傳遞參數(shù)時(shí),會(huì)怎么樣呢?
>>> add(y=2, x=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: add() missing 2 required positional arguments: 'x' and 'y'
報(bào)錯(cuò)了,系統(tǒng)不允許你使用這種方式調(diào)用,僅支持位置參數(shù)的方式進(jìn)行調(diào)用,調(diào)用時(shí)不能指定參數(shù)的名字。
其實(shí),這個(gè)語法在Python3.7 就有出現(xiàn)過,比如內(nèi)置函數(shù) float
python3.6可以指定參數(shù)名字進(jìn)行調(diào)用
>>> float(x=1)
1.0
python3.7就會(huì)報(bào)錯(cuò)
>>> float(x=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: float() takes no keyword arguments
>>> float(1)
1.0
可以看下python3.7 下 float 的幫助文檔
>>> help(float)
Help on class float in module builtins:
class float(object)
| float(x=0, /)
|
| Convert a string or number to a floating point number, if possible.
|
| Methods defined here:
|
| __abs__(self, /)
| abs(self)
你會(huì)發(fā)現(xiàn)float定義中,也有個(gè) “/“,說明 x 是位置參數(shù),調(diào)用時(shí),不能指定名字。
僅位置參數(shù)的語法就是在函數(shù)定義時(shí),位置參數(shù)用 “/” 進(jìn)行分隔,調(diào)用時(shí)不允許使用命名關(guān)鍵字參數(shù)進(jìn)行調(diào)用,你明白了嗎?
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
文章題目:怎樣分析Python3.8中的僅位置參數(shù)
網(wǎng)頁URL:http://muchs.cn/article6/ghoiig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、Google、微信公眾號(hào)、定制開發(fā)、、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)