Python instances

Bengt Richter bokr at oz.net
Thu Apr 21 14:01:10 EDT 2005


On Thu, 21 Apr 2005 07:58:14 -0400, Kent Johnson <kent37 at tds.net> wrote:

>Bengt Richter wrote:
>> The following shows nothing static anywhere, yet a class has been defined, an instance created, and
>> __init__ called with initial value, and the value retrieved as an attribute of the returned instance,
>> and it's all an expression.
>> 
>>  >>> type('C', (), {'__init__': lambda self,v:setattr(self,'foo',v)})('hello').foo
>>  'hello'
>
>I have no idea what point you are trying to make, except maybe that it is possible to obfuscate a 
>simple class definition.
>
I may have misunderstood your point ;-) I was just trying to add an exclamation point.
I.e., everything happening above shows that you don't need to have a name bound to the class
as in class C:pass, nor do you need to "put" and instance "somewhere", as in in inst = C('hello'),
and you don't need to do that to get inst.foo from all of the preceding. I.e., whatever the OP
thinks about assigning/binding, it's not an absolutely necessary part of any of the preceding.

Regards,
Bengt Richter



More information about the Python-list mailing list