[Python] come organizzare il codice, file lungo...
Pietro
peter.zamb a gmail.com
Mar 7 Ago 2012 16:49:43 CEST
Ciao a tutti!
scusate la domanda da novizio... ma fino ad oggi non mi era mai capitato...
sto partecipando al Google summer of code, in cui sto sviluppando
un'interfaccia python per GRASS (softaware per l'elaborazione di dati
cartografici: raster e vettoriali). Sto lavorando all'implementazione
delle geometrie vettoriali (punti, linee, aree, etc.), al momento il
sorgente è strutturato così [0]:
pygrass/
vector/
__init__.py
* class Vector
geometry.py
* class Point
* class Line
* class Area
* etc...
il problema è che il file geometry supera le 1000 righe... pensavo che
potrei trasformare il file geometry.py in una cartella, e creare un
file python per ogni geometria... tipo:
pygrass/
vector/
__init__.py
* class Vector
geometry/
point.py
* class Point
line.py
* class Line
area.py
* class Area
etc...
solo che in questo modo l'import di una geometria diventa abbastanza
ripetitivo... tipo:
from pygrass.vector.geometry.point import Point
from pygrass.vector.geometry.line import Line
potrei dividere in sotto file... e nel file __init__.py faccio
l'import di solo quelle classi che mi interessano... chiamando i file
all'interno della cartella con un undescore davanti in modo che siano
non visibili, tipo:
# pygrass/vector/geometry/__init__.py
from _point import Point
from _line import Line
from _area import Arrea
etc..
# pygrass/vector/geometry/_point.py
class Point(object): pass
# pygrass/vector/geometry/_line.py
class Line(object): pass
etc...
in questo modo potrei importare le mie classi con: ::
from pygrass.vector.geometry import Point, Line, Area, etc
C'è un modo che vi sentireste di suggerire rispetto ad un altro? è
solo questione di gusti personali?
c'è un metodo più pythonico dell'altro? uno che è meglio evitare?
Mi tengo il file lungo? :-)
Ogni suggerimento è il ben venuto...
buon pomeriggio.
Pietro
[0] http://code.google.com/p/pygrass/source/browse/pygrass/vector/
Maggiori informazioni sulla lista
Python