2009-11-18 5 views
1

Par exemple, en Python, je peux créer une classe comme ceci:Quelle est la manière idiomatique de définir des variables de classe/instance dans une définition de classe dans Ruby?

class foo(object): 
    bar = 'x' 
    def __init__(self, some_value): 
     self.some_attr = some_value 

... où la barre est un attribut de classe et some_attr est un attribut d'instance. Quelle est la manière idiomatique de faire des choses comme ça dans Ruby?

+0

devrait être classe foo au lieu de def foo ... – robince

+0

Doh! C'est incroyable que personne ne l'ait attrapé jusqu'à maintenant. –

Répondre

6
class Foo 

    @@bar = 'x' 
    attr_accessor :some_attr 

    def initialize(some_value) 
    self.some_attr = some_value 
    end 

end 
1

À peu près ce que weppos a écrit, mais j'utiliserais le @ -sigil pour la variable d'instance (c'est pratique courante).

Comme:

def initialize(some_value) 
    @some_attr = some_value 
end 

Aussi, je ne nommerai pas la classe "Foo", mais cela n'a rien à faire avec Ruby.

+0

Je ne nommerais pas Foo non plus, mais c'est toujours la première chose qui me vient à l'esprit quand je donne des exemples comme ceux-là. :-) –

+0

Oui, je comprends certaines des raisons de foo/bar etc ... Il est bon d'avoir des noms communs pour les exemples je suppose, je ne les aime pas parce qu'ils sont des noms "moche": P. Le spam et les œufs de la communauté Python sont, si rien d'autre, plus drôle :) – Johan

Questions connexes