【问题标题】:Is there something in Python that is similar to "want" in PerlPython中是否有类似于Perl中的“想要”的东西
【发布时间】:2021-10-15 23:46:11
【问题描述】:

在 Perl 中,有一种方法可以找出调用函数的上下文 - 无论是列表还是标量上下文 - 甚至是更精细的粒度。请参阅wantarraywant module

Python中有类似的东西吗?

【问题讨论】:

    标签: python perl


    【解决方案1】:

    不,Python 没有 Perl 的标量/数组区别。值只是绑定到名称,而不考虑值的类型。

    我能想到的最接近的类比是

    x += y
    

    这被取消为x.__iadd__(y),因此__iadd__ 方法可以根据需要检查其参数y 的类型。例如,即使list.__iadd__ 没有这样做,理论上它也可以被定义为允许像

    x = []
    x += 9  # x == [9]; append a non-iterable argument
    x += [11, 12]  # x == [9, 11, 12]; extend with an iterable argument
    

    【讨论】:

    • 有趣!我会更多地研究这个脱糖的东西。它是否也适用于某处的分配?
    • 啊!我喜欢desugared 这个词。我必须使用它!
    • “语法糖”是指并非绝对必要的语法;它可以被替换(“去糖”)而不影响语义。例如,x += y 等价于 x = x + y,如果未定义 x.__iadd__,则语法的含义取决于 x 的类型,而不仅仅是 6 个字符的字符串 x += y
    • (我的意思是我觉得我在这里用的太松了。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2011-01-07
    • 1970-01-01
    相关资源
    最近更新 更多