Article View: pl.comp.lang.python
Article #28284Re: Pytania początkującego cz. 1
From: merlin
Date: Sun, 13 Nov 2011 18:49
Date: Sun, 13 Nov 2011 18:49
40 lines
2637 bytes
2637 bytes
On 10 Lis, 17:48, hubert depesz lubaczewski <dep...@depesz.com> wrote: > On 2011-11-10, Jordan Szubert <use...@joru.us.to> wrote: > > > d1=dict() > > d1["a"]=dict() > > di["a"]["b"]="123" > > hmm .. a nie ma jakiegoś shortcuta, gdybym na przykład uznał, że muszę > koniecznie mieć 10 poziomów wgłąb? Tak od kopa nie ma, ale zawsze możesz coś zrobić swojego: >>> class ddict(dict): ... def __getitem__(self, name): ... if name not in self.__dict__: ... self.__dict__[name] = ddict() ... return self.__dict__[name] ... def __setitem__(self, name, value): ... self.__dict__[name] = value ... >>> if __name__ == '__main__': ... di = ddict() ... di["a"]["b"]="123" ... di["a"]["e"]["f"]="123f" ... print di["a"]["b"] ... print di["a"]["e"]["f"] ... 123 123f metody __getitem__, __setitem__ to do dictow, list ... . Czyli jak wkładasz coś do dicta/listy to wołana jest metoda __setitem__ itd sa jeszcze metody __getattr__ / __getattribute__ , __setattr__ to do atrybutów "depesz.attrybut" itp (opcjonalnie getattr(obiekt, attr, default) i setattr(obiekt, attr, value). -- Paweł Socha
Technical Details
Message-ID:
<f98f29d2-e95d-43bb-9fc6-093498a5342c@n14g2000vbn.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!n14g2000vbn.googlegroups.com!not-for-mailReferences:
<vhsqo8-di8.ln1@depesz.com> <slrnjblpjq.7mn.dozzie@jarowit.net> <3q0to8-r2o.ln1@depesz.com> <j9gos2$ib6$1@node2.news.atman.pl> <4v7to8-ieq.ln1@depesz.com> <op.v4qm4hlbhilul8@asus7p.home> <grbto8-194.ln1@depesz.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!n14g2000vbn.googlegroups.com!not-for-mail From: merlin <pawel.socha@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Pytania początkującego cz. 1 Date: Sun, 13 Nov 2011 10:49:57 -0800 (PST) Organization: http://groups.google.com Lines: 41 Message-ID: <f98f29d2-e95d-43bb-9fc6-093498a5342c@n14g2000vbn.googlegroups.com> References: <vhsqo8-di8.ln1@depesz.com> <slrnjblpjq.7mn.dozzie@jarowit.net> <3q0to8-r2o.ln1@depesz.com> <j9gos2$ib6$1@node2.news.atman.pl> <4v7to8-ieq.ln1@depesz.com> <op.v4qm4hlbhilul8@asus7p.home> <grbto8-194.ln1@depesz.com> NNTP-Posting-Host: 87.206.213.111 Mime-Version: 1.0 X-Trace: posting.google.com 1321210317 22893 127.0.0.1 (13 Nov 2011 18:51:57 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 13 Nov 2011 18:51:57 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: n14g2000vbn.googlegroups.com; posting-host=87.206.213.111; posting-account=HoFbbgoAAADk9PiSSyuCtJ0a1diNx9XV User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HNKUARELSC X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2,gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit