Python3.8更新笔记

Python3.8更新笔记

  • 3.8beta版本已经可供下载,简单归纳以下几点功能供参考

  • 海象运算符

    • 形如:=的运算符,一般和whileif语句搭配使用,可以在对变量进行判断的同时对其赋值
    m = re.match(p1, line)
    if m:
    	return m.group(1)
    else:
    	m = re.match(p2, line)
    	if m:
    		return m.group(2)
    	else:
    		...
    
    # 可简写为
    if m := re.match(p1, line):
    	return m.group(1)
    elif m := re.match(p2, line):
    	return m.group(2)
    ...
    
    # 不可迭代对象
    ent = obj.next_entry()
        while ent:
            ...   # ent代码
    	ent = obj.next_entry()
    
    # 可简写为
    while ent := obj.next_entry():
            ... # ent代码
    
  • f - string支持调试

    • 增加附加语法,以便于调试中对输出进行优化
    # 1. 3.6版本
    print(f'foo={foo}')
    
    # 可简化为
    print(f'{foo=}')
    
    # 2. "!s"使结果以字符串形式输出,以替代默认的 repr() 类型
    from datetime import datetime
    now = datetime.now()
    print(f'{now=}')  # now=datetime.datetime(2019, 7, 21, 15, 02, 0, 476923)
    print(f'{now=!s}')  # now=2019-07-21 15:02:00.476923
    
    # “!f” 能够对输出的格式进行调整
    import math
    print(f'{math.pi=!f:.2f}')  # math.pi=3.14
    
    a = 37
    print(f'{a = }, {a  =  }')  # a = 37, a  =  37 注意空格表达方式
    
    # 3. PEP 570 中提出了一种表示 positional-only 参数的新语法,用于表示不能作为关键字参数进行传递的参数;其使用类似于“*”,PEP 3102 中提出“*”用于表示关键字参数
    def bar(a, b, /, c, d, *, e, f):
        ...
    
    # a, b 为必须位置参数,e, f 必须为关键字参数,c, d 都两种都可以
    bar(1, 2, 3, 4, e=5, f=6)          # 正确
    bar(1, 2, 3, d=4, e=5, f=6)        # 正确
    bar(a=1, b=2, c=3, d=4, e=5, f=6)  # 错误
    
  • 可移动的__pycache__

    • 从3.2版本开始,Python3解释器创建__pycache__文件夹保存.pyc文件,这是为了支持多版本Python,如PyPy(不是CPython)
    • 新增环境变量PYTHONPYCACHEPREFIX,告诉Python何处查找和存储这些缓存文件
    # 指定__pycache__文件路径
    -X pycache_prefix=PATH
    
  • 更多更新详情请见

    • 更快捷的C拓展调用方式
    • 清除解释器中配置处理
    • 标准库模型更新
  • 参考原文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值