Article View: pl.comp.lang.python
Article #15963Re: Relacja wiele do wielu między obiektami - jak?
From: wmoranski
Date: Mon, 26 Jun 2006 13:49
Date: Mon, 26 Jun 2006 13:49
39 lines
3079 bytes
3079 bytes
Piotr Chamera napisał(a):
>
> Witam
> To jest bardzo elegancka i oczywista implementacja, ale niestety
> nie spełnia wymagań punktów 2 i 3. Z zewnątrz z atrybutu obiektu
> jest czytana lista, jest modyfikowana na zewnątrz i przypisywana
> z powrotem do obiektu (tylko te operacje na atrybucie są wykonywane)
> i nie mam na ten interfejs wpływu. Kolejność obiektów na liście
> jest znacząca, więc nawet jako wewnętrzna implementacja "set" odpada.
> Poza tym obiekt może pozostawać w relacjach z kilkoma innymi zbiorami
> obiektów (może mieć kilka atrybutów dla różnych (niezależnych) relacji)
> - musi być możliwość ustalenia jakie atrybuty po obu stronach
> odpowiadają tej konkretnej relacji, np. dla obecnej implementacji:
>
> (...)
Chwila - bo czegoś nie rozumiem:
1) czy informacja o tych relacjach wiele do wielu jest trzymana gdzieś
zupełnie poza objektami należącymi do tej relacji?
Jeśli tak - to poco przepisywać tą informacje do objektów - może
ją tylko przetwarzać jakąś metodą...
> Poza tym obiekt może pozostawać w relacjach z kilkoma innymi zbiorami
> obiektów
2) rozummiem - że każda klasa definiuje sobie zestaw innych klas z
którymi może wchodzić w relacje - tak? Jeśli tak - to może zrobić
jeden słownik (np. self.relations) którego klucze byłyby nazwami
klas - a wartości listami objektów przywiązanymi do tego objektu.
Metoda dodania nowego powiązania była by banalna:
def connect(self,object):
self.relations[object.__class__.__name__].add(object)
Może gdybyś bardziej sprecyzował problem (może więcej przykładów
użycia) było by łatwiej coś doradzić
Pozdrawiam
Technical Details
Message-ID:
<1151329791.871001.168520@i40g2000cwc.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!i40g2000cwc.googlegroups.com!not-for-mailReferences:
<e7ipnb$nv7$1@nemesis.news.tpi.pl> <1151277573.688330.24800@i40g2000cwc.googlegroups.com> <e7oljc$66o$1@nemesis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!i40g2000cwc.googlegroups.com!not-for-mail From: "wmoranski@gmail.com" <wmoranski@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Relacja wiele do wielu między obiektami - jak? Date: 26 Jun 2006 06:49:51 -0700 Organization: http://groups.google.com Lines: 44 Message-ID: <1151329791.871001.168520@i40g2000cwc.googlegroups.com> References: <e7ipnb$nv7$1@nemesis.news.tpi.pl> <1151277573.688330.24800@i40g2000cwc.googlegroups.com> <e7oljc$66o$1@nemesis.news.tpi.pl> NNTP-Posting-Host: 80.55.120.138 Mime-Version: 1.0 X-Trace: posting.google.com 1151329795 12465 127.0.0.1 (26 Jun 2006 13:49:55 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 26 Jun 2006 13:49:55 +0000 (UTC) In-Reply-To: <e7oljc$66o$1@nemesis.news.tpi.pl> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.8.0.4) Gecko/20060406 Firefox/1.5.0.4 (Debian-1.5.dfsg+1.5.0.4-1),gzip(gfe),gzip(gfe) X-HTTP-Via: 1.1 skarbowa.one.pl:8080 (squid/2.5.STABLE9) Complaints-To: groups-abuse@google.com Injection-Info: i40g2000cwc.googlegroups.com; posting-host=80.55.120.138; posting-account=uvvIKQ0AAACro30CgxDlNPKy1-9bXyX9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit