Не уверен, что вы хотите от вашего примера. Свойства (из того, что я видел) обычно используются для создания сеттеров и геттеров. Вы можете иметь, что в Руби attr_accessor
:
class Test
attr_accessor :check
end
Вы можете позвонить attr_accessor
в любое время вы хотите атрибут:
class Test
%w{this are possible attribute names}.each do |att|
attr_accessor att
end
end
Или
Class Test
end
test = Test.new
Test.send(:attr_accessor, :whatever)
test.whatever = "something"
test.whatever # => "something"
Если вы хотите только геттер вы имеете attr_reader
, и для писателя есть attr_writer
. Все они для атрибута, называемого attribute_name
, используют переменную экземпляра с именем @attribute_name
. Все они могут быть построены с instance_variable_set
и instance_variable_get
, что позволяет динамически устанавливать и получать переменные экземпляра.
Рубин не имеют свойства. Можете ли вы уточнить, что вы хотите сделать для своего кода? Предпочтительно на языке, который могут понять рубисты (т. Е. Ruby), не каждый рубист отлично владеет языком Python. –