Python中是否有关于管道操作符的PEP提案?
Python通用管道操作符的相关PEP提案情况
在Python中,我们常写这类分步处理的代码:
def load_data(): df_ans = get_data() df_checked = check_data(df_ans) # 返回df_ans或抛出错误 return_dict = format_data(df_ans) return return_dict
也可以写成嵌套调用的形式,但可读性和美观度较差:
def load_data(): return format_data(check_data(get_data()))
如果是Pandas相关代码,还能通过.pipe()方法实现链式调用:
def load_data(): return get_data().pipe(check_data).pipe(format_data)
但你想要的是一种通用的管道操作语法,比如:
def load_data(): return (get_data() |> check_data |> format_data)
其中x |> y等价于y(x)(y为可调用对象)——目前没有被正式接受并纳入Python标准的PEP提案实现这种语法。
社区里曾有过相关讨论和非正式的提案尝试:比如在PEP 572(海象运算符)的讨论阶段,曾有人提议加入管道操作符,但最终该提案仅聚焦于赋值表达式,未包含管道功能;还有像PEP 2025这类草案,但并未进入正式推进流程,最终也没有落地。
你提到的重载|运算符的第三方库,确实能实现类似效果,但需要额外依赖或自定义包装,不属于Python原生支持的通用管道操作。
内容的提问来源于stack exchange,提问作者MYK
相关产品推荐
相关产品推荐

