erlug
[Top] [All Lists]

[Erlug] Re: Python e variabili di classe (Was: a soup of chars...)

To: "'erlug@xxxxxxxxxxxxxx'" <erlug@xxxxxxxxxxxxxx>
Subject: [Erlug] Re: Python e variabili di classe (Was: a soup of chars...)
From: Alessandro Forghieri <Alessandro.Forghieri@xxxxxxxxxx>
Date: Fri, 11 Oct 2002 10:20:07 +0200
Greetings.

> (sempre come java.. in altri termini non c'e' 
> predichiarazione come in C++, che
> hai la definizione dell'interfaccia nel .h e 
> l'implementazione nel .cpp)

...e questo (.h) sarebbe *Bello*?? tutti i gusti sono gusti.
(ma in java c'e' javadoc e in python...)


> e le variabili sono dinamiche e quindi non vengono dichiarate 
> nemmeno quelle.
> Se un metodo interno della classe automobile usa la variabile 
> colore della
> classe, tu non sai che quella variabile esiste, a meno che 
> non spulci il
> codice.

Io sono un perlista arrabbiato, (e iscritto a the perl journal:
http://www.tpj.com) ma questo e' ingiusto verso python.

Ad esempio dir(classname) oppure:

[tratto da "Dive into python": http://www.diveintopython.org]

def help(object, spacing=10, collapse=1):
        """Print methods and doc strings.

        Takes module, class, list, dictionary, or string."""
        methodList = [e for e in dir(object) if callable(getattr(object,
e))]
        processFunc = collapse and (lambda s: " ".join(s.split())) or
(lambda s: s)
        print "\n".join(["%s %s" %
                                         (method.ljust(spacing),
                                          processFunc(str(getattr(object,
method).__doc__)))
                                         for method in methodList])


Cio' non toglie che in python puoi sempre fare:

class Foo:
        pass

f=Foo()
f.whatever=3 #Now f has the whatever attribute

Ma se lo fai, sono poi anche affari tuoi. Se non vuoi permetterlo, si puo'
sempre sovrascrivere
i metodi __getattr__, __setattr__....

Cheers,
alf

<Prev in Thread] Current Thread [Next in Thread>
  • [Erlug] Re: Python e variabili di classe (Was: a soup of chars...), Alessandro Forghieri <=