Iniciación Python: duda
Publicado por Sergio (2 intervenciones) el 10/10/2019 13:44:30
Hola! Estaba iniciándome por afición en el tema de la programación a través de Python y me ha surgido una duda con un curso que estaba haciendo:
El vídeo al que hago referencia es el siguiente:
Y el código es el siguiente:
La duda que tengo es: ¿Por qué es necesario a la hora de cargar el archivo poner el self.lista= pickle.load(archivoexterno)? Lo digo porque pensaba que se podía igualar a lo que fuese. Aquí, sin embargo, si no se iguala a self.lista no funciona. Yo pensaba que lo relevante es lo que se carga (archivoexterno) y que se supone que ahí ya estaba almacenada la información.
El vídeo al que hago referencia es el siguiente:
Y el código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import pickle
class persona():
def __init__ (self, nombre, genero, edad):
self.nombre=nombre
self.edad=edad
self.genero=genero
print ("Se ha creado una nueva persona: ", self.nombre)
def __str__(self):
cadena = self.nombre + ", " + self.genero + ", " + self.edad
return cadena
class listapersonas():
lista = []
def __init__(self):
archivoexterno = open ("archivopersonas", "ab+")
archivoexterno.seek(0)
try:
self.lista = pickle.load(archivoexterno)
print ("El archivo externo tiene {} personas en su interior".format(len(self.lista)))
except:
print ("El archivo está vacío")
finally:
archivoexterno.close()
del archivoexterno
def añadirpersonas(self, px):
self.lista.append(px)
self.volcarinformacionaarchivoexternopersonas()
def mostrarlista (self):
for p in self.lista:
print (p)
def volcarinformacionaarchivoexternopersonas(self):
pepitolospalotes = open ("archivopersonas", "wb")
pickle.dump(self.lista, pepitolospalotes)
pepitolospalotes.close()
del pepitolospalotes
def mostrarexterno(self):
for p in self.lista:
print (p)
----------------------
milista=listapersonas()
px = persona("Juan", "masculino", "34")
milista.añadirpersonas(px)
milista.mostrarexterno()
La duda que tengo es: ¿Por qué es necesario a la hora de cargar el archivo poner el self.lista= pickle.load(archivoexterno)? Lo digo porque pensaba que se podía igualar a lo que fuese. Aquí, sin embargo, si no se iguala a self.lista no funciona. Yo pensaba que lo relevante es lo que se carga (archivoexterno) y que se supone que ahí ya estaba almacenada la información.
Valora esta pregunta


0