🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #16564

Re: Dlaczego singletony?

#16564
From: Seweryn Habdank-Wojewódzki
Date: Tue, 24 Apr 2007 20:51
115 lines
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-mail
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>

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