Alex Martelli wrote: > Ilias Lazaridis <[EMAIL PROTECTED]> wrote: [...]
>>possibly one can provide the code for something similar to the ruby >>attr_accessor: >> >>class Talker >> def sayHello >> puts "Hello world" >> end >> >> attr_accessor :name, :age >> >>end >> >>thus they can later be accessed this way >> >>john.age = 19 >> >>print john.age [...] > Yes: the amount of code one needs to provide for this purpose is, NONE. [...] > just as you request. _No need to provide ANY code in the class_. [...] - (elaborations on getter/setter need) I've understood your elaborations. I would need this python "attr_accessor", to showcase that python is capable to do it (even if the usage seems irrational/redundant). >>>instance and introspecting on it. Would such instantiation be OK here? >> >>If I understand you right, it would be ok. >> >>The requirements are given by the template: >> >>john.sayYourClassDefinition() >> >>"john" is instantiated, when asked for his class definition. > > OK, I'll look into that in my copious spare time (unless somebody else > does the work first;-). would be very nice! >>>>"assign to it" with: >>>> >>>>setattr(Talker, 'meta', "Class meta information") [...] >>>>Talker.meta = "Class meta information" [...] >>But this means that "assignment of metadata" works fine. > > Yes, on mutable objects such as ordinary classes it does work fine. It > would not work on immutable objects such as strings or numbers. ok >>>>>>class Talker(object): pass >>>>>>Talker.meta = 'class metainfo' >>>>>>print Talker.meta >>> >>>class metainfo >> >>thus if I make a typo, I create a new attribute? > > Yep, just like, I believe, in Ruby; if you meant to assign to @zappo but > happen to mistakenly assign to @zippo instead, you've created a new > attribute. In Python, if you wish, you can check for such "oops"-level [...] - (elaborations on code-verification / unit-testing) Ok. . -- http://lazaridis.com -- http://mail.python.org/mailman/listinfo/python-list