91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣分析Python3.8中的僅位置參數

發布時間:2021-12-04 09:53:58 來源:億速云 閱讀:158 作者:柒染 欄目:大數據

怎樣分析Python3.8中的僅位置參數,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Python3.8新特性的僅位置參數(Positional-Only Arguments)

函數傳遞參數的方式繁多,有位置參數、默認參數、可變參數、關鍵字參數、命名關鍵字參數。舉個例子:

def add(x, y, *args, **kwargs):
   print(f"x={x}, y={y}")

這里的 x 和 y 就是兩個位置參數,我們可以這樣調用

>>> add(1, 2)
x=1, y=2

因為是位置參數,嚴格遵守位置順序。

不過,你也可以把 x 和 y 當做命名關鍵字參數進行傳遞,參數的順序可改變,例如把 y 放前面,不影響結果

>>> add(y=2, x=1)
x=1, y=2

第二種方式看似更靈活,出錯的風險也增加了,特別是多人合作的項目中。

那么如何從語法層面上禁止這樣調用,避免出錯呢?

這里就可以使用Python3.8中的僅位置參數語法了,在函數定義時,參數之間可指定一個斜杠(/),斜杠前的參數嚴格遵守僅位置參數的定義,例如:

>>> def add(x, y, /, *args, **kwargs):
...     print(f"x={x}, y={y}")
...
>>> add(1,2)
x=1, y=2

“/“ 告訴解釋器,x 和 y 是兩個嚴格的位置參數,不能當做命名關鍵字參數進行傳遞。如果把它當作命名關鍵字參數進行傳遞參數時,會怎么樣呢?

>>> 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'

報錯了,系統不允許你使用這種方式調用,僅支持位置參數的方式進行調用,調用時不能指定參數的名字。

其實,這個語法在Python3.7 就有出現過,比如內置函數 float

python3.6可以指定參數名字進行調用

>>> float(x=1)
1.0

python3.7就會報錯

>>> 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)

你會發現float定義中,也有個 “/“,說明 x 是位置參數,調用時,不能指定名字。

總結

僅位置參數的語法就是在函數定義時,位置參數用 “/” 進行分隔,調用時不允許使用命名關鍵字參數進行調用,你明白了嗎?

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黎城县| 洪雅县| 靖远县| 锡林浩特市| 中西区| 彩票| 宜宾市| 黄浦区| 余干县| 许昌县| 东兴市| 天津市| 隆昌县| 孝感市| 囊谦县| 绍兴县| 托里县| 德保县| 鹤庆县| 清水河县| 佛山市| 富川| 湟源县| 青海省| 赣榆县| 涿鹿县| 普洱| 昂仁县| 南雄市| 永城市| 肥西县| 林口县| 平顺县| 奉节县| 湖南省| 扎兰屯市| 温宿县| 犍为县| 静乐县| 石阡县| 海门市|