美文网首页
python3.8更新重点

python3.8更新重点

作者: 青月教主 | 来源:发表于2020-02-18 21:20 被阅读0次

    新增的语法 := 可在表达式内部为变量赋值。

    它被昵称为“海象运算符”因为它很像是 海象的眼睛和长牙。

    在这个示例中,赋值表达式可以避免调用 len() 两次:
    n = len(a) if n>10: print(f"List is too long ({n} elements, expected <= 10)")
    if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected <= 10)")

    位置形参

    新增了一个函数形参语法 / 用来指明某些函数形参必须使用仅限位置而非关键字参数的形式。
    在下面的例子中,形参 a 和 b 为仅限位置形参,c 或 d 可以是位置形参或关键字形参,而 e 或 f 要求为关键字形参:
    位置形参a,b/位置形参或关键字形参*关键字形参
    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
    由于在 / 左侧的形参不会被公开为可用关键字,其他形参名仍可在 **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 ways
    10 20 {'a': 1, 'b': 2, 'c': 3}

    相关文章

      网友评论

          本文标题:python3.8更新重点

          本文链接:https://www.haomeiwen.com/subject/klhjfhtx.html