Как идиоматический способ установить переменные класса / экземпляра в определении класса в Ruby? - PullRequest
1 голос
/ 18 ноября 2009

Например, в Python я могу создать такой класс:

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

... где bar - атрибут класса, а some_attr - атрибут экземпляра. Какой идиоматический способ сделать такие вещи в Ruby?

Ответы [ 2 ]

6 голосов
/ 18 ноября 2009
class Foo

  @@bar = 'x'
  attr_accessor :some_attr

  def initialize(some_value)
    self.some_attr = some_value
  end

end
1 голос
/ 19 ноября 2009

Почти то, что написал weppos, но я бы использовал @ -sigil для переменной экземпляра (это обычная практика).

Как:

def initialize(some_value)
    @some_attr = some_value
end

Кроме того, я бы не назвал класс "Foo", но это не имеет ничего общего с Ruby.

...