Python中是不是有类似于Perl中的“想要”的东西

Posted

技术标签:

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

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

Python中有类似的东西吗?

【问题讨论】:

【参考方案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 (我的意思是我觉得我在这里用的太松了。)

以上是关于Python中是不是有类似于Perl中的“想要”的东西的主要内容,如果未能解决你的问题,请参考以下文章

想要在 PHP 中传递值列表(如在 Perl 中),而不是引用数组

有没有类似于 Perl 的 Archive::Extract 的 Python 包?

Python 是不是有类似于 R 包预测中的 nnetar 的模型?

Python中是不是有类似于C++ STL map的结构?

R 中是不是有类似于 Python 的 % 的字符串格式化运算符?

是否有适用于 Perl 6 的类似 CPAN/CPAN6 的项目?