-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathObjetos.py
More file actions
88 lines (58 loc) · 2.02 KB
/
Objetos.py
File metadata and controls
88 lines (58 loc) · 2.02 KB
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
86
87
88
#!/usr/bin/env python3
# encoding: utf-8
"""
Demostracion de creacion de Clases en Python
NOTA: Python no soporta sobrecarga de metodos, lo que hace es mantener la ultima implementacion del
metodo que encuentre. Para poder soportar este comportamiento es declarar sobre el metodo un
argumento de tipo tupla
def metodo (self, *unaTuplaDeArgumentos)
"""
class Persona:
"""
Clase Persona
Identifica a un objeto de la vida real
"""
# def __init__(self):
# print 'Instancia default del objeto Persona'
def __init__(self, *params):
print ('Instancia con parametros:', params, ' de la clase Persona')
persona = Persona()
persona = Persona('Marko')
persona = Persona(23, 6)
persona = Persona('Kiko', 9)
"""
Para que una variable de clase pueda ser private se debe de poner el prefijo '__', Aunque
lo unico que hace Python es reenombrar esa variable a un formato que conoce
"""
import datetime
class Coche(object):
def __init__(self):
self.__modelo = datetime.date.today().year
def getModelo(self):
print ('~invocando el metofo GET, ',)
return self.__modelo
modelo = property(getModelo)
coche = Coche()
print ('1. Modelo del coche: ', coche.modelo )
print ('2. Modelo del coche: ', coche.getModelo() )
print ('3. Modelo del coche: ', coche._Coche__modelo )
"""
Python tiene una caracteristica que permite definir metodos set/get para propiedades
de la clase, pero usa el nombre de la propiedad y tras bambalinas usa los metodos definidos
"""
class OtraPersona(object):
def __init__(self):
self.__nombre = '.'
def getNombre(self):
print ('\n[OtraPersona] regresando el nombre\n' )
return self.__nombre
def setNombre(self, nombre):
print ('\n[OtraPersona] asignando nombre\n' )
self.__nombre = nombre
nombre = property(getNombre, setNombre)
otraPersona = OtraPersona()
otraPersona.setNombre('Flaca')
print ('Nombre de OtraPersona: ', otraPersona.nombre )
otraPersona.nombre = 'Marko'
#otraPersona.setNombre('Marko')
print ('Nombre modificado de OtraPersona: ', otraPersona.getNombre() )