Názory k článku Létající cirkus (7)

  • Článek je starý, nové názory již nelze přidávat.
  • 18. 3. 2002 13:11

    martin (neregistrovaný)

    Diky za vysoce informativni clanek.

    Ze zavedeni tridnich a statickych metod mam pochopitelne radost, ale zpusob jejich vytvareni se mi zda ponekud nestastny. S timto pristupem bychom mohli zrusit i klicove slovo class a tridy vytvaret volanim funkce bless() :-) (to bychom teda dopadli :)

    nebylo by prehlednejsi treba
    def class foo(cls):
    a
    def static foo():

    I properties by se daly resit syntaxi:
    class c:
    __ property value:
    ____ "docstring"
    ____ def get(self): ...
    ____ def set(self, val): ...

    (ta podtrzitka tam jsou jen kvuli indentaci)

    Treba to nejakym takovym zpusobem chteji udelat a proto to zatim nemaji v dokumentaci.

  • 18. 3. 2002 13:55

    Jan Svec (neregistrovaný)

    Zavedeni novych klicovych slov na sebe vaze velke nekolik problemu. Predne: pokud se dane klicove slove vyskytuje v nejakem jiz existujicim kodu, bude si interpretr stezovat na spatnou syntaxi (dojde k vyjimce SyntaxError, viz dalsi dil). Guido se zavadeni novych klicovych slov snazi vyhnout (verze 2.2 zavedla jen jedno nove klicove slovo 'yield', urcene pro vytvareni generatoru, mimochodem to je nesmirne zajimava cast programovani v Pythonu a urcite se ji take budeme venovat).


    Pro zavadeni novych vlastnosti do jazyka jsou ustaveny dokumenty PEPs (Python Enhancement Proposals, http://python.sourceforge.net/peps/). V nich jsem ale o properties a spol. nenasel nic. Neni tam ani nic o planovanem zavedeni novych klicovych slov.

  • 18. 3. 2002 16:45

    martin (neregistrovaný)

    Zavedeni novych klicovych slov by samozrejme problemy zpusobilo. To jsem si spis jen pustil fantazii na spacir, jak by to mohlo vypadat, kdyby to bylo uz od zacatku soucasti navrhu jazyka. Ostatne, pokud bych ve svem starem kodu pouzival funkci staticmethod nebo property, mam problem taky a mozna se projevi daleko zahadnejsim zpusobem...

  • 19. 3. 2002 9:46

    Jan Svec (neregistrovaný)

    Prave ze ne. Funkce property a staticmethod jsou definovany v builtin prostoru jmen, ktery je az na konce retezce pri vyhledavani jmen promennych. Pokud je jiz tato funkce v existujicim kodu, "prekryje" vestavenou funkci. Pokud bychom chteli pouzivat funkci property() z vestaveneho modulu museli bysme udelat neco takoveho:


    def property(*arg, **kwarg):

    ..'Dejme tomu, ze toto je nase puvodni funkce'


    import __builtin__


    class foo:

    ..'Zde chceme pouzivat vestavenou property()'

    ..bar = __builtin__.property()


    (Pozn.: tecky ze zacatku radku znaci odsazeni)


    K chybne funkci by doslo, kdyby nase puvodni property() byla v nejakem modulu a my ji volali z jineho. Kdybychom totiz z tohoto modulu zapomneli naimportovat funkci property(), volala by se vestavena. Zde je to jiz jen o zdatnosti programatora, jak rychle by se s timto opomenutim vyporadal.

  • 27. 10. 2008 0:23

    rw (neregistrovaný)
    Pro zacinajici pythonaky (jako jsem ja) pridavam neco z poslednich novinek verze 2.6 (protoze staticmethod = stacicmethod(..) me poradne vydesilo ..skoro tak, ze jsem uvazoval zda je python to prave)
    class Bla(object):
    
        def __init__(self): 
            self.a = 'abvc'
            self.voltage = 'ac'
    
    #class metoda -----
    
        @classmethod
        def saySomethingClassic(cls):
            print('hi')
            print(cls)
    
    #static metoda -----
    
        @staticmethod
        def saySomethingStatic(txt):
            print(txt)
    
    #property - zpusob 1. -----
    
        voltage = property(doc="hello, this is documentation")
    
        @voltage.getter
        def voltage(self):
            print('voltage getter')
            return self._voltage;
    
        @voltage.setter
        def voltage(self, value=None):
            print('voltage setter')
            self._voltage = value
    
    #property - zpusob 2. -----
    
        @property
        def current(self):
            print('curr getter')
            return self._current
    
        @voltage.deleter   #tohle jde taky
        @current.setter
        def current(self, val = None):
            print('curr setter')
            self._current = val
    
    
    
    a = Bla()
    
    Bla.saySomethingClassic()
    Bla.saySomethingStatic('abcCfc')
    
    print(a.voltage)
    a.voltage = 'adsdasXXXd'
    print(a.voltage)
    print(Bla.voltage.__doc__)
    
    a.current = '1A'
    print(a.current)
    
    ... no presto doufam, ze se odnaucim jako Javista pouzivat settery/gettery :]
  • 18. 3. 2002 14:08

    Jan Svec (neregistrovaný)

    Chtel bych se zeptat, jestli nekdo nema prehled o tom jak pocetna je komunita programatoru v Pythonu a nas v Cechach? Je tezke delat nejake odhady, ale podle poctu ctenaru jednotlivych clanku bysme se dostali na cislo mezi dvema az tremi tisici. Je treba ale vzit v potaz, ze nekdo si clanek precte a presto v Pythonu neprogramuje, kdezto jiny povazuje clanky za ctivo pro zacatecniky a on (protoze je pokrocily uzivatel) je necte.


    A jak pocetne jsou komunity programatoru treba kolem Perlu nebo Ruby?


    Pouziva nejaka ceska firma Python pri vyvoji projektu? Pripadne na kolika serverech se pouziva pro generovani dynamickych stranek.


    Dale bych chtel podekovat vsem vernym ctenarum a obracim se na ne s moznosti zvolit si dalsi vyvoj tohoto serialu. Nasledujici dil ma byt venovany vyjimkam a pak planuji zarazeni 1-2 dilu o vecech a syntaxi, ktere jsme v nasem vykladu vynechali. Zvazuji zde, zda pred tyto dily nezaradit cast venovanou generatorum.


    Dekuji za kazdou odpoved.


    Jan Svec

  • 18. 3. 2002 19:52

    Jakub Travnik (neregistrovaný)

    Pro ruby je wiki http://www.rubygarden.org a na nem je ceska skipna

    http://www.rubygarden.org/ruby?CzechGroup

    Tohle sice nepomuze odhadnout pocet uzivatelu, ale kdyz bude nekdo hledat radu, ktera potrebuje blizsi kontakt nebo resit problem, ktery se tyka lokalizace, muze se mu takova stranka hodit.

  • 19. 3. 2002 10:26

    gmmns (neregistrovaný)

    Generatory bych tam urcite dal, ale spis az po tech vyjimkach a syntaxi. Serial je fajn, drzim palce do dalsich dilu.