gpt4 book ai didi

python - 调试 Ruby/Python/Groovy

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:51 25 4
gpt4 key购买 nike

我正在改写这个问题,因为它要么太无趣,要么太难以理解。 :)

最初的问题是因为我正在进行从 Java 到 Groovy 的转换,但是这个例子在转换到任何高级语言(Ruby、Python、Groovy)时同样适用。

Java 很容易调试,因为代码行和相当细粒度的行为之间有明确的关系,例如使用 for 循环操作数组:

for ( int i=0; i < array1.size(); i++ )
{
if ( meetsSomeCriterion(array1.elementAt(i) )
{
array2.add( array1.elementAt(i) );
}
}

所以你可以在循环中的测试上设置一个断点,看看接下来会发生什么。 (我知道有更好的写法;这只是为了说明这一点。)

在像 Ruby 这样的语言中,惯用风格似乎更倾向于更高级别的单行代码,例如来自 http://rubyquiz.com/quiz113.html

quiz.to_s.reverse.scan(/(?:\d*\.)?\d{1,3}-?/).join(',').reverse

我想知道您是否可以建议任何有效的调试技术,例如,如果您更改了正则表达式……您是否仍会使用传统的调试器,并步入/跨过链式方法?或者有更好的方法吗?

谢谢!

最佳答案

如果我要调试您的示例,我要做的第一件事就是将其分解为多个步骤。我不在乎它是“pythonic”还是“ruby 方式”或“tclish”或其他什么,这样的代码很难调试。

这并不是说我不写那样的代码。调试完成后,有时可以将所有内容合并成一行,但我发现自己更倾向于可读性和可维护性,而不是编写简洁的代码。如果单行方法确实更具可读性,我会采用它,但如果不是,我不会。

关于python - 调试 Ruby/Python/Groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1205343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com