2024-05-20 01:53:09 发布
网友
Title演示了我希望在python脚本中传达的perl习惯用法。我意识到这可能被解释为不好的做法,可能是由于(缺乏)异常处理。尽管如此,我发现在(一次性/个人)公用事业中执行此类操作很有价值。你知道吗
这个问题的三个字母的答案是:嗯?你知道吗
较长的答案是:Python没有引用。没有tupleref或dictref,也没有返回它们的函数,调用者也无法将tupleref或dictref转换为tuple或dictionary。没有等价物。你知道吗
此Perl:
sub foo { qw/a b c/ } my @array = foo; print $array[0]; print $array[1]; print $array[2];
与另一个答案的Python的另一个答案中的Perl相当。你知道吗
不过,它与Perl的其他部分不同。当你看到这样的调用时,情况就特别不同了:
my @array = (this_foo(), this_foo(), this_foo()); # @array is now: ('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'), and one-dimensional. my @array = (that_foo(), that_foo(), that_foo()); # @array is now: (['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']), and two-dimensional.
但这是一个对Python毫无意义的区别。你知道吗
Python不像Perl那样有不同类型变量的概念。标量、列表和dict都存储在同一种变量中。所以这个“成语”是不适用的。直接使用返回值即可。你知道吗
Perl代码示例:
sub foo { return [ qw(a b c) ]; } @list = @{foo()}; say $list[0]; say $list[1]; say $list[2];
等效的Python代码:
def foo(): return ("a", "b", "c") list = foo() print list[0] print list[1] print list[2]
我不知道你所说的缺乏异常处理是什么意思。你知道吗
这个问题的三个字母的答案是:嗯?你知道吗
较长的答案是:Python没有引用。没有tupleref或dictref,也没有返回它们的函数,调用者也无法将tupleref或dictref转换为tuple或dictionary。没有等价物。你知道吗
此Perl:
与另一个答案的Python的另一个答案中的Perl相当。你知道吗
不过,它与Perl的其他部分不同。当你看到这样的调用时,情况就特别不同了:
但这是一个对Python毫无意义的区别。你知道吗
Python不像Perl那样有不同类型变量的概念。标量、列表和dict都存储在同一种变量中。所以这个“成语”是不适用的。直接使用返回值即可。你知道吗
Perl代码示例:
等效的Python代码:
我不知道你所说的缺乏异常处理是什么意思。你知道吗
相关问题 更多 >
编程相关推荐