it.comp.lang.python
  Home FAQ Contact Sign in
it.comp.lang.python only
 
Advanced search
August 2007
motuwethfrsasuw
  12345 31
6789101112 32
13141516171819 33
20212223242526 34
2728293031   35
2007
 Jan   Feb   Mar   Apr 
 May   Jun   Jul   Aug 
 Sep   Oct   Nov   Dec 
2008 2007 2006  
total
it.comp.lang.python Profile…
RELATED GROUPS

POPULAR GROUPS

more...

 Up
  Re: evitare ripetizione in molti metodi         


Author: michele.simionato
Date: Aug 8, 2007 21:36

On Aug 8, 9:17 pm, Micetto Nero liamg.com.invalid> wrote:
> P.S.: l'uso di una funzione non sarebbe risolutivo, in quanto dovrei
> chiamarla ogni volta. Vorrei poter fare una cosa del genere (da mettere
> non so dove):
>
> metodi_da_intercettare = ['a', 'b', 'c']
>
> if metodo in metodi_da_intercettare:
> # bla bla bla
> metodo(classe, parametri)
> else:
> metodo(classe, parametri)

Assumendo di avere una classe contenente solo metodi da' intercettare
(a parte i metodi speciali e possibili metodi privati)

class MethodContainer(object):
def meth1(self):
...
def meth2(self):
...
Show full article (0.89Kb)
1 Comment
  non si può importare una classe?         


Author:
Date: Aug 8, 2007 12:17

c.d.o.

salvo in file "classe.py" una classe da tutorial
>>>class Messaggio:
>>> def __init__(self, unaStringa):
>>> self.txt = unaStringa
>>> def mostra(self):
>>> print self.txt

Dopodiche in un file a parte...
>>> "import classe"
e provo a richiamare la funzione mostra...
>>>m1 = Messaggio("perche **** non lo importi")
>>>m1.visualizza()

che mi restituisce
>>>NameError: name 'Messaggio' is not defined

Non capisco: posso importare un oggetto ma non posso importare una
classe?

grazie!
ciao
2 Comments
  evitare ripetizione in molti metodi         


Author: Micetto Nero
Date: Aug 8, 2007 11:56

Nella mia classe ho numerosi metodi che iniziano tutti così:

def mio_metodo(self, other):
if not isinstance(other, miaClasse):
... # bla bla bla

come posso "intercettare" le chiamate a quei metodi e scrivere così una
sola volta quella porzione di codice?
Ho lo strano presentimento che si tratti di metaprogramming, ma sono
molto inesperto in questo campo :D.
8 Comments
  cicli...         


Author: Alfredo
Date: Aug 8, 2007 09:19

def move_lista():
for i in range (21,99):
if colori[i] == side:
move(i,ply)
for i in range (0,len(lista),5):
pezzi[lista[4+i]] = lista[2+i]
pezzi[lista[3+i]] = 0
pezzi[:]=pezzi_finali[:]
side = 7

domanda da niubbo.. smile

- vorrei che l'espressione side = 7 fosse applicata alla fine del
ciclo. come faccio?? cosi come l'ho scritta side diventa 7 alla fine
del primo ciclo, invece io vorrei che diventasse 7 soltanto quando
tutti i cicli sono finiti.

ciao,

Alfredo
3 Comments
  curses e simulatore di less         


Author: ZeD
Date: Aug 8, 2007 04:00

Salve a tutti, stavo giochicchiando un po' con le curses e un po' per prova,
un po' per non avere a che fare con processi non necessari, stavo
sviluppando una moooolto semplice/istica funzione che "mimasse" il
comportamento di less con il terminale. Tuttavia ho un paio di problemi
abbastanza strani:

prima di tutto il codice (la variabile 'testo', in effetti, e' un vettore di
stringhe, una per riga)

---- >8 ---- >8 ---- >8 ---- >8 ---- >8 ---- >8 ---- >8 ---- >8 ---- >8 ----

from curses import initscr, error, endwin, KEY_DOWN, KEY_UP

<...>
Show full article (1.60Kb)
2 Comments
  Argomento 'self'         


Author: Leonardo
Date: Aug 8, 2007 01:13

Sono _veramente_ alle prime armi.
Dopo un paio di settimane di letture sui tipi e le classi, ho cercato di
scrivere qualcosa (le classiche robettine da inizi...).
Però non mi è chiaro una cosa...

Perché quando si definisce una classe, i vari metodi devono sempre
riportare l'argomento self come primo? A che serve, se poi chiamando il
metodo della classe dall'esterno, non passo quell'argomento?
Sì, ho letto che serve a Python per gestire i metodi internamente alla
classe stessa, ma la cosa comunque resta poco chiara...

Se scrivo da shell
class matematica():
def somma(self,a,b):
return a+b

e poi:
operazioni=matematica
operazioni.somma(2,3)
Show full article (1.15Kb)
67 Comments