以下兩個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