Article View: pl.comp.objects
Article #16564Re: Dlaczego singletony?
From: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 20:51
Date: Tue, 24 Apr 2007 20:51
115 lines
4058 bytes
4058 bytes
Witam
Adam Karpierz wrote:
>> Zmartwię Pana. Da się tak zrobić, aby było dobrze. Mam tak inicjalizowany
>> Logger - potrafi on logować wszystko od początku powstania programu do
>> końca programu włącznie z funkjami wywoływanymi w atexit.
>
> A Pan o czym pisze ?
>
> Bo ja pisze wylacznie o tym ze:
> """
> Bo tak to juz w C++ jest zrobione ze nie mozna
> pol statycznych klasy zainicjwac w momencie ich deklaracji
> """
Tak, to prawda, tylko, że jest na to sposób natomiast natomiast zrozumienie
tego zagadnienia głębiej pozwala na analizę statyczną programu w
szczególności sekwencji wywołań konstruktorów statycznych oraz zakańczania
życia obiektów statycznych.
Jeszcze raz (bez żadnej złośliwości) tak jak początek programu w Pythonie
jest w miarę oczywisty, tak koniec, a szczególnie sekwencja końcowa nie.
>> Tak na marginesie w Javie jest podobny problem, który został rozwiązany
>> bardzo prosto i brzydko. A nadal nie wiem jak w Pythonie robi się taki
>> logger, który potrafi monitorowac wszystko,
>
> Ja tez nie.
> Wiem tylko ze implementacja jest banalna
> w stosunku do tej z C++ :).
A jest jakiś pouczający pouczający przykład?
> Wszytsko ? Tzn loguje Wszechswiat ?
Cytuję sam siebie:
"
potrafi on logować wszystko od początku powstania programu do
końca programu włącznie z funkjami wywoływanymi w atexit
"
>> przyczym inicjalizacja jest banalna,
>> gorzej kiedy chcę monitorować to
>> co pójdzie w zapomnienie do GC.
>> Jak np. zmierzyć czas życia obiektu?
>
> Banal.
Aha, rozumiem. A może jakiś link, albo pozycja książkowa.
>> Nadal nie wiemy czemu Pan w kodzie singletona w Pythonie
>> użył "del ta". To w cale nie jest oczywiste.
>
> Oczywiste.
> Nie uzywam - grzecznie informuje.
> A wiec del ta
Cytuję:
"
class Singleton:
__single_state = {}
def __init__(self):
self.__dict__ = Singleton.__single_state
def main():
ta = Singleton()
# tu kod
del ta
^^^^^^^^^^^^^^^^^^^^
main()
"
A co jeśli jakiś inny moduł załaduje ten moduł, to jak się usadowi
singleton?
Albo co jeśli ten singleton jest loggerem i ma za zadanie sprawdzać
finalizację pozostałych obiektów w programie, gdzie należy napisać del ta?
>> Aha i nadal nie ma implementacji consta.
>
> Panie Wojewodzki to tez nie jest trudne :)
> Szczegolnie dlatego ze zupelnie niepotrzebne :)
Hmm... czy nie potrzebne to jest dyskusyjne. Są całe rozprawy na temat
obiektów które mają za zadanie pilnowania niezmienników w programie.
>>> Przeciez np w Pythonie funkcja polimorficzna
>>> (nawet funcja a nie metoda) jest zwykle:
>>>
>>> def a(x)
>>> print x
>>
>> I co tu jest polimorficzne?
>
> Wszystko !
> Czasem niestety, a czasem na szczescie
>
> PS: Czy Pan tu _naprawde_ nie dostrzega polimorfizmu ?
No jeśli wszystko to jest to jasne, myślałem o jakimś wyrafinowanym tricku.
Pozdrawiam.
--
|\/\/| Seweryn Habdank-Wojewódzki
\/\/
Technical Details
Message-ID:
<f0lqi7$ie0$1@news.vectranet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mailReferences:
<f0i3to$bq0$1@inews.gazeta.pl> <f0jcfq$hvc$1@srv.cyf-kr.edu.pl> <f0jhc5$j9$1@inews.gazeta.pl> <f0ki1l$t8j$1@cernne03.cern.ch> <f0ktko$4om$1@inews.gazeta.pl> <f0kuu5$nh6$1@news.vectranet.pl> <f0l0t2$jha$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail From: Seweryn Habdank-Wojewódzki <shw_mail@wp.pl> Newsgroups: pl.comp.objects Subject: Re: Dlaczego singletony? Date: Tue, 24 Apr 2007 22:51:12 +0200 Organization: VectraNET - http://www.vectranet.pl Lines: 116 Message-ID: <f0lqi7$ie0$1@news.vectranet.pl> References: <f0i3to$bq0$1@inews.gazeta.pl> <f0jcfq$hvc$1@srv.cyf-kr.edu.pl> <f0jhc5$j9$1@inews.gazeta.pl> <f0ki1l$t8j$1@cernne03.cern.ch> <f0ktko$4om$1@inews.gazeta.pl> <f0kuu5$nh6$1@news.vectranet.pl> <f0l0t2$jha$1@inews.gazeta.pl> Reply-To: shw_mail@wp.pl NNTP-Posting-Host: 82.139.21.12 Mime-Version: 1.0 X-Trace: news.vectranet.pl 1177447816 18880 82.139.21.12 (24 Apr 2007 20:50:16 GMT) X-Complaints-To: usenet@news.vectranet.pl NNTP-Posting-Date: Tue, 24 Apr 2007 20:50:16 +0000 (UTC) User-Agent: KNode/0.10.4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit