V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  abersheeran  ›  全部回复第 72 页 / 共 89 页
回复总数  1761
1 ... 68  69  70  71  72  73  74  75  76  77 ... 89  
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@NeezerGu 对的。

@admirez 可以,此管道可以用在任何 Python 代码里。我就是在处理数据的时候想到的这个。

@sapocaly 你说的这个不就是楼上推荐的那个库吗?你喜欢的话可以去试试,上面有链接。我个人喜欢 | F(...) 这么用。没有黑魔法,工作原理简单,对 debug 友好,最重要的优点是每一次管道运算都是真实的运算出了结果,我可以在任何一次运算之后拿去用,而不需要特意标识一个 END 或者其他什么的。
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@frostming
@Wincer

就比如说明希想要的那个,可以用
def fp(func):
def _(*args, **kwargs):
return F(func, *args, **kwargs)
return _

折中实现一下,强制 double call 才能实际调用。

而你要做的这个,既要支持 direct call 又要支持
double call……那就得第一次调用之后延迟计算,判断如果是走管道,调第二次,判断直接赋值的话再去计算。CPython 应该做不到,可以考虑做个超集语言,在编译期做。
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@Wincer 要实现你这个,首先要让这些 callable 支持自动柯里化……不是支持一个管道运算符就行了的

自动柯里化的工作量就太大了,因为 Py 里存在 *args 和 **kwargs 。我是想不到有什么好办法能实现的。所以我选择让程序员自己柯里化一次(也就是使用 F 包裹一次)。
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@bruce00 谢谢~
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@NeezerGu 自己看标准库源码吧。搜这一行 from _functools import partial
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@Ritter 一般这种类似于一个函数功能的类,都会以小写命名,而不是死板的遵守 pep8 。
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@zone10 partial 本身就是 C 写的,虽然在标准库里也有一个 C 模块不可用时的 Pure Python 降级代替,但编译正常的 CPython 都会用那个 C 版本。所以这里的性能损耗几乎不可能更低了。
2021 年 1 月 11 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@frostming 嗯? F 从 partial 继承而来,本就可以绑定参数的。😀
2021 年 1 月 10 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@aijam 各有各的好。我这个一共只有六行代码,工作原理简单,对 Python 原本用法几乎无改变,可以和现在的代码混合使用,使用成本低、收益高。
你给的那个库,需要从数据源头包一层,返回的也是个它的自定义对象,没办法做到随意的混合使用。当然,它那个只需要在源头和结尾申明一下,可以少输入几个字符,这方面还是有优势的。
2021 年 1 月 10 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@Jirajine 有道理。待会就发一个。
2021 年 1 月 10 日
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
@YUX 谢谢指正,写错了哈哈哈。好尴尬,待会就改。
1 ... 68  69  70  71  72  73  74  75  76  77 ... 89  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   915 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 20:24 · PVG 04:24 · LAX 13:24 · JFK 16:24
♥ Do have faith in what you're doing.