🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #15963

Re: Relacja wiele do wielu między obiektami - jak?

#15963
From: wmoranski
Date: Mon, 26 Jun 2006 13:49
39 lines
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-mail
References: <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