python3.8什么时候出来,【新版本来临!Python 官网宣布,正式发布Python3.8.0!】- 环球网校...
【摘要】當今世界充滿了各種數據,而python是其中一種的重要組成部分。然而,若想其有所應用,我們需要對這些python理論進行實踐。其中包含很多有趣的的過程,然后將其用于某些方面。當然python也有很多版本。今天,正式發布 Python 3 8 0,我們來講講Python 3 8 0。
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
類似的益處還可出現在正則表達式匹配中需要使用兩次匹配對象的情況中,一次檢測用于匹配是否發生,另一次用于提取子分組:
discount = 0.0if (mo := re.search(r'(\d+)% discount', advertisement)):
discount = float(mo.group(1)) / 100.0
此運算符也適用于配合 while 循環計算一個值來檢測循環是否終止,而同一個值又在循環體中再次被使用的情況:
# Loop over fixed length blockswhile (block := f.read(256)) != '': process(block)
另一個值得介紹的用例出現于列表推導式中,在篩選條件中計算一個值,而同一個值又在表達式中需要被使用:
[clean_name.title() for name in names if (clean_name := normalize('NFC', name)) in allowed_names]
請盡量將海象運算符的使用限制在清晰的場合中,以降低復雜性并提升可讀性。
僅限位置形參
新增了一個函數形參語法 / 用來指明某些函數形參必須使用僅限位置而非關鍵字參數的形式。這種標記語法與通過 help () 所顯示的使用 Larry Hastings 的 Argument Clinic 工具標記的 C 函數相同。
在下面的例子中,形參 a 和 b 為僅限位置形參,c 或 d 可以是位置形參或關鍵字形參,而 e 或 f 要求為關鍵字形參:
def f(a, b, /, c, d, *, e, f):
print(a, b, c, d, e, f)
以下均為合法的調用:
f(10, 20, 30, d=40, e=50, f=60)
但是,以下均為不合法的調用:
f(10, b=20, c=30, d=40, e=50, f=60) # b cannot be a keyword argument
f(10, 20, 30, 40, 50, f=60) # e must be a keyword argument
這種標記形式的一個用例是它允許純 Python 函數完整模擬現有的用 C 代碼編寫的函數的行為。例如,內置的 pow () 函數不接受關鍵字參數:
def pow(x, y, z=None, /): "Emulate the built in pow() function" r = x ** y return r if z is None else r%z
另一個用例是在不需要形參名稱時排除關鍵字參數。例如,內置的 len () 函數的簽名為 len (obj, /)。這可以排除如下這種笨拙的調用形式:
len(obj='hello') # The "obj" keyword argument impairs readability
另一個益處是將形參標記為僅限位置形參將允許在未來修改形參名而不會破壞客戶的代碼。例如,在 statistics 模塊中,形參名 dist 在未來可能被修改。這使得以下函數描述成為可能:
def quantiles(dist, /, *, n=4, method='exclusive') ...
由于在 / 左側的形參不會被公開為可用關鍵字,其他形參名仍可在 **kwargs 中使用:
>>> def f(a, b, /, **kwargs):...
print(a, b, kwargs)...
>>> f(10, 20, a=1, b=2, c=3) # a and b are used in two ways10 20 {'a': 1, 'b': 2, 'c': 3}
這極大地簡化了需要接受任意關鍵字參數的函數和方法的實現。例如,下面是 collections 模塊中的代碼摘錄:
class Counter(dict): def __init__(self, iterable=None, /, **kwds): # Note "iterable" is a possible keyword argument
用于已編譯字節碼文件的并行文件系統緩存
總結
以上是生活随笔為你收集整理的python3.8什么时候出来,【新版本来临!Python 官网宣布,正式发布Python3.8.0!】- 环球网校...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab p-tite分割图像,P'
- 下一篇: php分页类 seo,HTML_写一个对