[Python] costruzione dinamica di oggetti e sotto-oggetti
Manlio Perillo
manlio.perillo a gmail.com
Mer 10 Lug 2013 14:14:01 CEST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 09/07/2013 15:26, Riccardo mancuso ha scritto:
>>
>> Da quello che (ancora non sono sicuro di capire) vuole fare l'OP, io farei:
>>
>> lavello = {
>> 'name': 'lavello',
>> 'width': x
>> 'xxx': ...
>> }
>>
>> forno = {
>> 'name': 'forno',
>> 'width': x,
>> 'xxx': ...
>>
> [...]
> non voglio solo collezionare, ma anche costruire oggetti via via più
> complessi come assemblati di unità più piccole e che possano essere
> create runtime.
> Con i dizionari diventa dura da gestire.
Quale credi sia la differenza tra:
lavello_dict = {
'name': 'lavello',
'width': 10,
'xxx': 'xxx'
}
e
class Lavello(object):
def __init__(self, width, xxx):
self.width = width
self.xxx = xxx
lavello_obj = Lavello(10, 'xxx')
?
Hint:
print lavello_obj.__dict__
print lavello_obj.__class__.__name__
Ovviamente *ci sono* differenze, ma non nell'esempio che hai fatto
all'inizio.
Le classi sono comode se oltre ai dati aggiungi anche i metodi, che
implementano una interfaccia comune. Nel tuo caso non è chiaro se e
quale interfaccia ti serva.
Tra dover fare:
if isinstance(obj, Lavello):
obj.do_lavello()
e
if obj['name'] == 'lavello':
do_lavello(obj)
io preferisco la seconda.
Ciao Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlHdUAkACgkQscQJ24LbaUT+9wCfdfs6tAzHYiKhBpI+36qvunZ1
530An2ye0a/S5NuVKFjz9opbZYXMapn1
=0a21
-----END PGP SIGNATURE-----
Maggiori informazioni sulla lista
Python