2024-04-27 10:06:48 发布
网友
Perl的习惯很难改变。变量声明、作用域、全局/局部在两种语言之间是不同的。有没有一套推荐的python语言习惯用法可以让从perl编码到python编码的转换变得不那么痛苦。在
细微的变量拼写错误会浪费大量的时间。在
我知道变量声明问题在python人中是准宗教的 我不是在争论语言的变化或特性,只是在两者之间建立一个可靠的桥梁 这两种语言不会使我的perl习惯落空于python。在
谢谢。在
我喜欢这个问题,但是我没有Perl的任何经验,所以我不知道如何最好地建议您。在
我建议你在谷歌上搜索一个“Python习语”。你会发现一些宝石。特别是:
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
http://docs.python.org/dev/howto/doanddont.html
http://jaynes.colorado.edu/PythonIdioms.html
至于变量“申报”问题,我给你的建议是:
请记住,在Python中,对象有自己的生命周期,与变量名分开。变量名是绑定到对象的标记。在任何时候,您可以将该名称重新绑定到另一个对象,可能是完全不同的类型。因此,这是完全合法的:
x = 1 # bind x to integer, value == 1 x = "1" # bind x to string, value is "1"
Python实际上是强类型的;如果您不相信我,请尝试执行代码1+“1”,看看它的工作情况。在没有显式类型强制的情况下,值为1的整数对象不接受字符串值的加法。所以Python名称从来没有标记变量属性的sigil字符;这不是Python的工作方式。任何合法的标识符名称都可以绑定到任何类型的Python对象。在
将Python类拆分为单独的文件(比如在Java中,每个文件一个类)有助于查找范围问题,尽管这不是惯用的Python(也就是说,不是Python)。在
我用了很多perl编写python,发现tchrist的这篇文章很有用,尽管它很旧:
http://linuxmafia.com/faq/Devtools/python-to-perl-conversions.html
在我的perl->;python转换过程中,第二个最困难的问题就是习惯于不使用perl最优秀的变量作用域。如果您有很多perl:CPAN,第一个很明显。在
在python中$不存在,除非在pythonshell中,并且不允许使用全局范围的变量。在
实际上,这有两个主要影响:
然而,当考虑到在Python中几乎所有的东西都成为一个类时,这些差别就相当小了。当我以前做Perl时,我想到了“雕刻”;在Python中,我觉得我在“写作”。在
Python没有Perl那样丰富的惯用用法,我认为尝试进行翻译可能是个错误。在
我喜欢这个问题,但是我没有Perl的任何经验,所以我不知道如何最好地建议您。在
我建议你在谷歌上搜索一个“Python习语”。你会发现一些宝石。特别是:
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
http://docs.python.org/dev/howto/doanddont.html
http://jaynes.colorado.edu/PythonIdioms.html
至于变量“申报”问题,我给你的建议是:
请记住,在Python中,对象有自己的生命周期,与变量名分开。变量名是绑定到对象的标记。在任何时候,您可以将该名称重新绑定到另一个对象,可能是完全不同的类型。因此,这是完全合法的:
Python实际上是强类型的;如果您不相信我,请尝试执行代码1+“1”,看看它的工作情况。在没有显式类型强制的情况下,值为1的整数对象不接受字符串值的加法。所以Python名称从来没有标记变量属性的sigil字符;这不是Python的工作方式。任何合法的标识符名称都可以绑定到任何类型的Python对象。在
将Python类拆分为单独的文件(比如在Java中,每个文件一个类)有助于查找范围问题,尽管这不是惯用的Python(也就是说,不是Python)。在
我用了很多perl编写python,发现tchrist的这篇文章很有用,尽管它很旧:
http://linuxmafia.com/faq/Devtools/python-to-perl-conversions.html
在我的perl->;python转换过程中,第二个最困难的问题就是习惯于不使用perl最优秀的变量作用域。如果您有很多perl:CPAN,第一个很明显。在
在python中$不存在,除非在pythonshell中,并且不允许使用全局范围的变量。在
实际上,这有两个主要影响:
然而,当考虑到在Python中几乎所有的东西都成为一个类时,这些差别就相当小了。当我以前做Perl时,我想到了“雕刻”;在Python中,我觉得我在“写作”。在
Python没有Perl那样丰富的惯用用法,我认为尝试进行翻译可能是个错误。在
相关问题 更多 >
编程相关推荐