alguien me lo explica?

Sergio Rua srua en esware365.net
Jue Feb 7 11:04:19 CET 2002


Hola,

	Tengo un programa en el que uso una clase para almacenar
	información sobre las particiones de cada uno de los discos
	duros de un equipo. El caso es que según el orden de
	inicialización de la clase, me funcionaba o no y no sé por qué.
	Os pongo el código y a ver si algún buen samaritano me lo
	explica.



class Partitions:
	start=-1
	end=-1
	type=None
	fs=None
	mp=None
	changed=0
	size=0

class HardDisk:
	""" Contenido del disco duro.
	Chapuza: está puesto un máximo de 15 particiones
	"""
	device=None
	nparts=0
	free=0
	
	partition={}
	
	def __init__(self):
		i=0
		while i < 16:
			self.partition[i]=Partitions()
			i=i+1


############## Así funciona

hds={}
hdlist=[]

hds['/dev/sda']=HardDisk()
hds['/dev/sdb']=HardDisk()

hds['/dev/sda'].partition[0].fs="primero"
hds['/dev/sda'].partition[1].fs="segundo"

hds['/dev/sdb'].partition[2].fs="tercero"
hds['/dev/sdb'].partition[3].fs="cuarto"

print hds['/dev/sda'].partition[0].fs
print hds['/dev/sda'].partition[1].fs
print hds['/dev/sdb'].partition[2].fs
print hds['/dev/sdb'].partition[3].fs


############## Así NO funciona
hds={}
hdlist=[]

hds['/dev/sda']=HardDisk()

hds['/dev/sda'].partition[0].fs="primero"
hds['/dev/sda'].partition[1].fs="segundo"

hds['/dev/sdb']=HardDisk()

hds['/dev/sdb'].partition[2].fs="tercero"
hds['/dev/sdb'].partition[3].fs="cuarto"

print hds['/dev/sda'].partition[0].fs
print hds['/dev/sda'].partition[1].fs
print hds['/dev/sdb'].partition[2].fs
print hds['/dev/sdb'].partition[3].fs





Un saludo,

		Sergio Rua <srua en esware.com>
		Departamento  de  Desarrollo
	         http://esware365.net/~srua





Más información sobre la lista de distribución Python-es