[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