-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclasesmatrioska.py
85 lines (63 loc) · 1.67 KB
/
clasesmatrioska.py
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
85
#Eduardo Daniel Batta Gonzalez
class Matrioska:
def __init__(self, tam):
self.__adentro = False
self.__tam = tam
self.__matrioska = None
def cambia_tam(self, tam):
self.__tam = tam
def cons_tam(self):
return self.__tam
def meter (self, matrioska):
if (self.__adentro == True):
print "La matrioska esta adentro, no puede meterle una matrioska"
return
if (self.__matrioska != None):
print "La matrioska esta llena, no puede meterle una matrioska"
return
if (matrioska.cons_tam() < self.__tam):
matrioska.__adentro = True
self.__matrioska = matrioska;
else:
print "No puede meterle una matrioska mas grande"
def sacar (self):
if (self.__adentro == True):
print "La matrioska esta adentro, no puede sacarle una matrioska"
return
if (self.__matrioska == None):
print "La matrioska esta vacia, no puede sacarle una matrioska"
return None
objeto_aux = self.__matrioska
objeto_aux.__adentro = False
self.__matrioska = None
print "Sacando matrioska ",objeto_aux.cons_tam()
return objeto_aux
def __ver (self):
print self.__tam,
if (self.__matrioska != None):
self.__matrioska.__ver()
def mostrar(self):
if (self.__adentro == True):
print "La matrioska esta adentro, no puede mostrarla"
return
self.__ver()
print
#PRINCIPAL
muygrande = Matrioska(4)
grande = Matrioska(3)
mediano = Matrioska(2)
chico = Matrioska(1)
chico.meter(mediano)
mediano.meter(chico)
grande.meter(mediano)
grande.meter(chico)
muygrande.meter(grande)
muygrande.mostrar()
grande.mostrar()
grande.sacar()
muygrande.sacar()
muygrande.mostrar()
grande.mostrar()
grande.sacar()
grande.sacar()
chico.sacar()