小编典典

Ruby和Python版本的“ self”有什么区别?

python

我已经做过一些Python,但是现在才开始使用Ruby,
我可以很好地解释这两种语言中“自我”之间的区别。

乍一看
明显: Self不是Python中的关键字,但是无论您叫什么,它都有一个“类似于自我”的值。
Python方法将self作为显式参数接收,而Ruby没有。
Ruby有时使用点表示法将方法明确定义为self的一部分。

最初的Google搜索显示了
http://rubylearning.com/satishtalim/ruby_self.html

http://www.ibiblio.org/g2swap/byteofpython/read/self.html


阅读 217

收藏
2021-01-20

共1个答案

小编典典

Python被设计为不仅支持面向对象的编程。在方法和函数之间保留相同的接口,可使两种样式更清晰地互操作。

Ruby完全是面向对象的。甚至文字也都是对象(对1.class求值就可以得到Fixnum)。该语言的构建方式使self是一个保留关键字,无论您在哪里,它都会返回当前实例。

如果您在某个类的实例方法中,则self是对该实例的引用。

如果您在类本身的定义中(而不是在方法中),则self是类本身:

class C
  puts "I am a #{self}"
  def instance_method
    puts 'instance_method'
  end
  def self.class_method
    puts 'class_method'
  end
end

在课程定义时间,将打印“我是C”。

直接的“ def”定义了一个实例方法,而“ def self.xxx”则定义了一个类方法。

c=C.new

c.instance_method
#=> instance_method
C.class_method
#=> class_method
2021-01-20