To je zaujimave o dekoratoroch som nic nevedel, Je to az do verzie 2.4?
Predtym (vo verziich pred 2.4) sa to robilo asi takto:
The question is: How can I implement a static method in python??
You can't.
But, a typical organization is to put one class (or a few closely
related classes) into one
samozrejme, ze to jde (i bez dekoratoru ;)
class trida:
def static(klass,i):
print i
static=classmethod(static) # tohle je misto dekoratoru pro Python 2.4
trida.static(2)
Radek
On 11/7/06, superman [EMAIL PROTECTED] wrote:
Nevíte, jak udělat statickou metody v Pythonu, myslím
Stejně je ale otázka, jestli opravdu chci používat
statické metody třídy. V podstatě jsou elegantní jen
v případě, kdy používají proměnné stejné třídy.
A zavádění proměnných třídy v Pythonu asi taky
není moc časté.
Odhaduji, že požadavek na použití statické metody
třídy může být zlozvyk
superman
pepr
Stejně je ale otázka, jestli opravdu chci používat
statické metody třídy. V podstatě jsou elegantní jen
v případě, kdy používají proměnné stejné třídy.
A zavádění proměnných třídy v Pythonu asi taky
není moc časté. [...]
[...] Uvědomte si, že statická metoda patří do
Zdravim,
hledam nejaky modul ktery by umel prevadet mezi bin-dec-hex idealne
vsechny kombinace vsemi smery ;-) pracoval by pochopitelne s retezci
(01010101 apod.).
Zkousel jsem pana Google ale nejak mi nic pouzitelneho nenasel -
existuje vubec neco takoveho nebo si to budu muset napsat sam (to
Zdravim,
hledam nejaky modul ktery by umel prevadet mezi bin-dec-hex idealne
vygooglyl q=python base convert
je univerzalni pro jakoukoliv soustavu
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/111286
Ale jinak standartni funkce hex() int() oct()
Honza Vrana
class uhel:
@staticmethod
def static_str_na_radiany(s):
return blablabla;
[...]
class zemepisny_uhel(uhel):
def static_str_na_radiany(s):
return blablabla;
[...]
Nikdy jsem to nepoužil a nechce se mi to zkoušet.
Bude ta metoda v potomkovi automaticky
Nikdy jsem to nepoužil a nechce se mi to zkoušet.
Bude ta metoda v potomkovi automaticky taky
statická?
To asi nebude. Tipuji, že prostě Python jen skladuje jména ke každé
třídě a instanci a je mu celkem jedno, jakého typu je dané jméno, to
zjistí až za běhu. Ale je to jen odhad
zaujimave, takto funguje to volanie statickej metody z metody instancie
...ale moje otazky na supermana ostavaju :-)
Leos Pol [EMAIL PROTECTED]
Sent by: [EMAIL PROTECTED]
08.11.2006 13:12
Please respond to
Konference PyCZ python@py.cz
To
Konference PyCZ python@py.cz
cc
Subject
Re:
Tvrdis to sice dost sebavedome, ale ja tomu nerozumiem, preco musi byt ta
metoda v triede uhel prave staticka a preco nemoze byt dynamicka, ked ju v
objekte zemepisny_uhel prekryvas? Coby sa stalo, keby bola dynamicka?
Naco je ta metoda staticka to je spolocna pre vsetky instancie triedy,
Diky vsem za pomoc.
Tom
On Nov 7, 8:39 pm, mtip [EMAIL PROTECTED] wrote:
Myslel jsem to takhle -- tady je podle me rozdil mezi x=a a instanci x=a()
# 1.
class a:
def __init__(self):
print 1
x=a #neprintne nic
x=a() #print 1
# 2.
x=a #pri x=a() to samozrejme selze
class uhel:
@staticmethod
def static_str_na_radiany(s):
return blablabla;
[...]
class zemepisny_uhel(uhel):
def static_str_na_radiany(s):
return blablabla;
[...]
Nikdy jsem to nepoužil a nechce se mi to zkoušet.
Bude ta metoda v potomkovi automaticky taky
statická?
class uhel:
@staticmethod
def static(a):
print trida1.static(): , a
def method(self):
self.static(1)
class zemepisny_uhel(uhel):
[EMAIL PROTECTED]
def static(a):
print trida2.static(): , a
a = uhel()
a.method()
b =
No ano, mne sa zda ze je logicke, ze staticku metodu nemozno predefinovat
dynamickou, lebo dynamicka je svojou povahou ina.
Poznas iny jazyk v ktorom to ide?
Ale skusal som toto, to je odkomentoval som to co ty si zakomentoval
class uhel:
@staticmethod
def static(a):
print
Díval jsem se na to znovu a beru zpět to,
že si myslím, že tohle využití vypadá zajímavě.
superman
[...]Protože v předkovi uhel se počítá s tím, že v metodě
__add__ se přes self předává jen jeden argument, najednou
si v potomku začne stěžovat na dva. Python má v tomhle
asi nepořádek a
ani ja v tom priklade nevidim uplatnenie
pre staticke metody
Poznámka: kromě staticmethod() a příslušného
dekorátoru existuje i classmethod(), ke které
jsme se zatím nedostali.
Tak k tomu podme teraz:-)
Aky je teda vlastne rozdiel medzi classmethod a staticmethod.
Vzdy som si myslel, ze
jazycích bylo v pořádku. Never is perfect :-)))
[myšleno asi Nobody is perfect -- Někdo to rád horké]
Přesně tak :-) Díky za opravu, příště si dám pozor na cizí termity :-)
je dekorátor zapoznámkovaný, takže je to stejné, jako kdybych
napsal
class zemepisny_uhel(uhel):
def
Mam jednu pripominku. Jak muzete definovat methodu tridy, kde neni prvni
parametr self (zemepisny_udel.static)? Muzete mi prosim ve zkratce
vysvetlit, co presne hledate? Uz se v tomhle threadu trosku ztracim a
docela rad bych problematice porozumel.
Původně jsem se ptal, jak takovou
superman wrote:
Uf, dekorátory mě zajímají. V manuálu jsem našel tak akorát velké nic,
takže informace na toto téma vítám. Co dělá classmethod?
Pomuze http://www.python.org/doc/2.4.4/whatsnew/node6.html ?
Trms,
-jkt
--
cd /local/pub more beer /dev/mouth
signature.asc
Description:
V classmethod se oproti staticmethod předává navíc jako první parametr
metody třída.
Jan Matejka
A jak se liší metoda bez classmethod a medota z classmethod? A nebo je
classmethod jen pro přehlednost, když to prostě chci zdůraznit a jinak
žádný jiný význam nemá?
Miloslav Ponkrác
ok, diky za vycerpavajuci popis, ale napriek tomu si myslim, ze tam kludne
mozes pouzit metodu dynamicku, fungovat to bude dobre a mas po problemoch
:-)
to je naprostá pravda :-) asi při řešení skutečného problému bych se na
to vykašlal a dal tam dynamickou, než podstupovat tohle hledání
Mam jednu pripominku. Jak muzete definovat methodu tridy, kde neni prvni
parametr self (zemepisny_udel.static)? Muzete mi prosim ve zkratce
vysvetlit, co presne hledate? Uz se v tomhle threadu trosku ztracim a
docela rad bych problematice porozumel.
Původně jsem se ptal, jak takovou
Zdravim.
jeste se jednou vratim k dekoratorum. Zkousel jsem property pres
dekorator a nejak se mi nedari. Nevite nekdo v cem je chyba ?
class a:
@property
def rad():
def fget(self):
print 'get'
return 1
def fset(self,val):
print
def rad(self):
On 11/8/06, mtip [EMAIL PROTECTED] wrote:
Zdravim.
jeste se jednou vratim k dekoratorum. Zkousel jsem property pres
dekorator a nejak se mi nedari. Nevite nekdo v cem je chyba ?
class a:
@property
def rad():
def fget(self):
print 'get'
On 11/8/06, mtip [EMAIL PROTECTED] wrote:
Zdravim.
jeste se jednou vratim k dekoratorum. Zkousel jsem property pres
dekorator a nejak se mi nedari. Nevite nekdo v cem je chyba ?
class a:
@property
def rad():
def fget(self):
print 'get'
return 1
In [1]: class aaa:
...: @staticmethod
...: def stat(): # staticka metoda
...: print Staticka
...: def inst(self): # metoda instancie
...: print Metoda instancie, dostala, self, ako parameter
...: @classmethod
...: def clsm(cls): # metoda
Hello,
konkretne je to takto:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410698
Samotny built-in objekt property, ktory sa snazis pouzivat sa da pouzit
ako dekorator len na read-only .
Preto je hentam zadefinovany dekorator Property (s velkym P), ktory robi
vsetko automaticky
Diky moc vsem. To bylo ono.
Mirek.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
28 matches
Mail list logo