以下两个Ruby和Python代码是类方法的示例。为什么python允许通过对象访问类方法,但Ruby不会呢?Python与Ruby类方法
Python代码
class student:
b = 78
@classmethod
def foo(var):
return var.b
z = student()
print z.foo() # => 78
红宝石代码
class Student
@@b = 78
def self.foo
@@b
end
end
z = Student.new
puts z.foo # => -e:20:in `<main>': undefined method `foo' for #<Student:0x007ff4f98ab9e8> (NoMethodError)
你的问题归结为“为什么不同的语言实际上是不同的?”因为他们是不同的语言...? – kindall
@kindall其实我只想知道是否有特定的原因 –
在ruby中,你可以使用'puts z.class.foo' – knut