zaur wrote: > On 28 авг, 16:07, Bruno Desthuilliers <bruno. > 42.desthuilli...@websiteburo.invalid> wrote: >> zaur a écrit : >> >> >> >> > On 26 авг, 17:13, "Diez B. Roggisch" <de...@nospam.web.de> wrote: >> >> Whom am we to judge? Sure if you propose this, you have some usecases >> >> in mind - how about you present these >> >> > Ok. Here is a use case: object initialization. >> >> > For example, >> >> > person = Person(): >> > name = "john" >> > age = 30 >> > address = Address(): >> > street = "Green Street" >> > no = 12 >> >> > vs. >> >> > person = Person() >> > person.name = "john" >> > person.age = 30 >> > address = person.address = Address() >> > address.street = "Green Street" >> > address.no = 12 >> >> Err... Looks like you really should read the FineManual(tm) - >> specifically, the parts on the __init__ method. >> >> class Person(object): >> def __init__(self, name, age, address): >> self.name = name >> self.age = age >> self.address = address >> >> class Address(object): >> def __init__(self, street, no): >> self.no = no >> self.street = street >> >> person = Person( >> name="john", >> age=30, >> address = Address( >> street="Green Street", >> no=12 >> ) >> ) > > What are you doing if 1) classes Person and Address imported from > foreign module 2) __init__ method is not defined as you want?
My work-around would be: p = person = Person() p.name = "john" p.age = age # assuming, for a moment, that the age I wanted to set # happened to be in another variable a = p.address = Address() a.street = "Green Street" a.no = 12 del a, p # optional, for a tidier namespace Slightly verbose, but, saying what it means, it avoids having to guess which age of several ages might have to be used in various places; the same would go for other input variables. Actually, I probably wouldn't use p as a stand-in for person unless person were a global name and p could be local. Mel. -- http://mail.python.org/mailman/listinfo/python-list