[Python] variabili globali e d'istanza: provengo da java

ugaciaka ugaciaka a gmail.com
Mer 26 Dic 2007 11:47:34 CET


Ho notato che in python c'è una cosa che, provenendo da java, mi
provoca disorientamento.

Le variabili!

Riassumendo: ho scritto un programmino (senza nessuna classe ma con
sole funzioni), ho notato che se passo da paramentro una variabile per
fargli capire al compilatore che non è una variabili d'istanza (cioé
della funzione) ma di tutto del corpo del programma devo anteporre
global al nome della variabile passata.

Ok fin qua ci sono. Ma se io volessi ora mettere tutto in una classe
come agisco? Dove definisco le variabili globali? Nella classe?
All'interno del costruttore?...

Il mio programmino di esercizio è questo sotto e praticamente non fa
altro che sostituire il carattere "_" con uno spazio " ".

import os
import string

def rinomina_nome_file(nome_file):
    return nome_file.replace("_", " ")

def lista_file2lista_file_rinominati(lista_file):
    global lista_file_rinominati
    for i in range(len(lista_file)):
        lista_file_rinominati.insert(i, rinomina_nome_file(lista_file[i]))

def tree2lista_file(tree):
    global lista_file
    for i in tree:
        lista_file = i[2][:]

def rinomina_file(lista_file, lista_file_rinominati):
    for i in range(len(lista_file)):
        os.rename(path+lista_file[i], path+lista_file_rinominati[i])

#variaibli
lista_file=[]
lista_file_rinominati=[]
path="/home/ivan/prova/"

tree=os.walk(path)

#applico i metodi...
tree2lista_file(tree)
lista_file2lista_file_rinominati(lista_file)
rinomina_file(lista_file, lista_file_rinominati)

#COSA INVECE VORREI FARE
#io vorrei invece fare solo, dopo aver creato la classe che ingloba i
miei metodi:
#oggetto=Classe(carattere_da_sostituire, carattere_sostituito)
#oggetto.rinomina_file()



scusate la lunghezza del post...

Grazie ciao


More information about the Python mailing list