我已经完成了一些 Python,但现在才开始使用 Ruby
我可以很好地解释这两种语言中“自我”之间的区别。
乍一看很明显:
Self 不是 Python 中的关键字,但无论你如何称呼它,都有一个“self-like”值。
Python 方法接收 self 作为显式参数,而 Ruby 则不然。
Ruby 有时使用点符号将方法显式定义为 self 的一部分。
初步谷歌搜索显示
http://rubylearning.com/satishtalim/ruby_self.html
http://www.ibiblio.org/g2swap/byteofpython/read/self.html
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
在类定义时,将打印“I am a C”。
直接的“def”定义实例方法,而“def self.xxx”定义类方法。
c=C.new
c.instance_method
#=> instance_method
C.class_method
#=> class_method
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)