Add a variable to a class instance at runtime

From Rosetta Code
Revision as of 00:06, 18 September 2007 by rosettacode>Jwilkins (New page: {{task}} This demonstrates how to dynamically add variables to a class instance at runtime. This is useful when the methods/variables are based on a data file that isn't available until r...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Task
Add a variable to a class instance at runtime
You are encouraged to solve this task according to the task description, using any language you may know.

This demonstrates how to dynamically add variables to a class instance at runtime. This is useful when the methods/variables are based on a data file that isn't available until runtime. Hal Fulton gives an example of creating an OO CSV parser at An Exercise in Metaprogramming with Ruby

Python

class empty(object):

 pass

e = empty() setattr(e, "foo", 1) print e.foo

Ruby

class Empty end e = Empty.new e.instance_variable_set("@foo", 1) e.instance_eval("class << self; attr_accessor :foo; end") puts e.foo