[python] Statické metody v Pythonu

Roman Miklos RMiklos na pss.sk
Středa Listopad 8 09:18:45 CET 2006


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 file (aka one "module").  Put what you 
would have as a static method, as a "global" function in that module 
instead.  It's not really global; it's in the module's scope, so it's 
really just as good as a static method.  You can even make it 
"private" by starting its name with an underscore (names which start 
with an underscore are not normally imported by other modules).

to je teda asi toto
--- module s ---

# module s

def staticM(pp):
  print pp*2


class s(object):
  def M(pp):
    print pp*2

--- koniec modulu ---

--- program ---
import s;

s.staticM("nazdar ")
--- koniec programu ---



"Jan Matejka" <matejka na cat.cz> 
Sent by: python-bounces na py.cz
07.11.2006 20:15
Please respond to
Konference PyCZ <python na py.cz>


To
"'Konference PyCZ'" <python na py.cz>
cc

Subject
Re: [python] Statické metody v Pythonu






s použitím dekorátoru

class S(object):
    @staticmethod
    def staticM(pp):
        print pp*2

S.staticM("nazdar ")

více:
http://www.ddj.com/184406073

Jan Matějka 

> -----Original Message-----
> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On 
> Behalf Of superman
> Sent: Tuesday, November 07, 2006 7:59 PM
> To: Konference PyCZ
> Subject: [python] Statické metody v Pythonu
> 
> Nevíte, jak udělat statickou metody v Pythonu, myslím metodu, 
> které není vázána k instanci, tedy self, ale jen ke třídě.
> 
> Zkoušel jsem:
> 
> class trida:
> 
>                def static(i):
>                                print i
> 
> 
> trida.static(3)
> 
> A dostal jsem chybové hlášení, že se Pythonu nelíbí, že 
> předávám číslo a ne instanci. Určitě to nějak jde, ale po 
> pokusu někde se to dočíst to vzdávám. Nevíte jak na to?
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
> 

_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python


Mgr. Ing. Roman MIKLÓŠ 
Prvá stavebná sporiteľňa a.s. 
Bajkalská 30, P. O. Box 48 
829 48  Bratislava 25 
Tel.: +421/ 2 / 582 31 174 
Fax: +421/ 2 / 582 31 109 



Další informace o konferenci Python