相关疑难解决方法(0)

Ruby没有Python,反之亦然?

有很多关于Python与Ruby的讨论,我发现它们完全没有用,因为它们都转向了为什么功能X在语言Y中很糟糕,或者声称语言Y没有X,尽管事实上确实如此.我也确切地知道为什么我更喜欢Python,但这也是主观的,并且不会帮助任何人选择,因为他们可能没有和我一样的开发品味.

因此,客观地列出差异将是有趣的.所以没有"Python的lambdas糟透了".而是解释Ruby的lambdas可以做什么,Python不能.没有主观性.示例代码很好!

请不要在一个答案中有几个不同之处.并且对那些你认识的是正确的进行投票,然后对你所知道的那些是不正确的(或者是主观的).此外,语法上的差异也不大.我们知道Python使用缩进来处理Ruby用括号和结尾做什么,并且@在Python中称为self.

更新:这是一个社区维基,所以我们可以在这里添加很大的差异.

Ruby在类体中有一个类引用

在Ruby中,您可以在类主体中引用类(self).在Python中,在类构造完成之前,您没有对类的引用.

一个例子:

class Kaka
  puts self
end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,self就是类,这段代码会打印出"Kaka".无法打印出类名或以其他方式从Python中的类定义体(外部方法定义)访问该类.

所有类在Ruby中都是可变的

这使您可以开发核心类的扩展.以下是rails扩展的示例:

class String
  def starts_with?(other)
    head = self[0, other.length]
    head == other
  end
end
Run Code Online (Sandbox Code Playgroud)

Python(想象没有''.startswith方法):

def starts_with(s, prefix):
    return s[:len(prefix)] == prefix
Run Code Online (Sandbox Code Playgroud)

您可以在任何序列(不仅仅是字符串)上使用它.为了使用它,你应该明确地导入它,例如,from some_module import starts_with.

Ruby具有类似Perl的脚本功能

Ruby拥有一流的regexp,$ -variables,awk/perl逐行输入循环和其他功能,使其更适合编写munge文本文件的小shell脚本或充当其他程序的粘合代码.

Ruby有一流的延续

感谢callcc声明.在Python中,您可以通过各种技术创建延续,但是该语言没有内置支持.

Ruby有块

使用"do"语句,您可以在Ruby中创建一个多行匿名函数,它将作为参数传递到do前面的方法中,并从那里调用.在Python中,您可以通过传递方法或使用生成器来执行此操作.

红宝石:

amethod { |here|
    many=lines+of+code
    goes(here)
}
Run Code Online (Sandbox Code Playgroud)

Python(Ruby块对应于Python中的不同构造):

with amethod() as here: # `amethod() is a context manager
    many=lines+of+code
    goes(here)
Run Code Online (Sandbox Code Playgroud)

要么

for here in amethod(): # `amethod()` …
Run Code Online (Sandbox Code Playgroud)

ruby python

264
推荐指数
23
解决办法
13万
查看次数

对于喜欢LISP的人,请建议Ruby vs Python

我是一名C++开发人员,慢慢进入Web开发.我很喜欢LISP,但不喜欢AllegroCL和LISP可用的网络框架.我正在寻找更多的自由和能力,在语言水平上做很酷的黑客.我不认为标签是对自然的犯罪.

哪一个更接近LISP:Python还是Ruby?

我似乎无法从Python和Ruby中进行选择:它们看起来非常相似,但显然Ruby更具功能性和面向对象,这些都是好事,而Python更像是Perl:一种简单的脚本语言.我有正确的印象吗?

PS - 这可能看起来像是一个火焰诱饵,但事实并非如此,我只是试着不要从OCD疯狂地从RoR切换到Python/Django并返回.

ruby lisp python

21
推荐指数
6
解决办法
5497
查看次数

用于.NET开发人员的Python或Ruby?

我是一名C#.NET开发人员,我主要从事ASP.NET项目.

我想学习一门新的编程语言,

  • 通过体验一门新语言来提高我的编程技巧,
  • 看到微软环境不同的东西,
  • 也许以不同的方式思考.

为了我的目标,我专注于两种语言.PythonRuby.

  • 你为我提供哪一个?
  • 他们彼此的利弊?
  • 是否值得学习它们?

编辑:对不起,我编辑了我的帖子,但没有通知这里,

Ruby on Rails取代了Ruby.

ruby python comparison ruby-on-rails

12
推荐指数
2
解决办法
1779
查看次数

标签 统计

python ×3

ruby ×3

comparison ×1

lisp ×1

ruby-on-rails ×1