In [16]:
def assign(alist, pos, value):
alist[pos] = value
In [17]:
x = [1,2,3]
In [18]:
assign(x, 0, 9)
In [19]:
x
Out[19]:
In [20]:
class something:
def __init__(self, val):
self.value = val
In [22]:
x = something(3)
In [23]:
x.value
Out[23]:
regresando al ejemplo
In [45]:
class Persona:
def __init__(self, nombre, edad, altura, peso):
self.nombre = nombre
self.edad = edad
self.altura = altura
self.peso = peso
self.gordura = peso / altura
In [48]:
juan = Persona("Juan Perez", 30, 175, 80)
In [49]:
juan.__dict__
Out[49]:
In [50]:
juan.peso = 76
In [51]:
juan.__dict__
Out[51]:
Haber puesto gordura de esta forma fue mala idea porque no cambio cuando se actualizo el peso (Juan se puso a dieta)... Debe ser un metodo!
In [52]:
class Persona:
"Esta es una clase de personas"
def __init__(self, nombre, edad, altura, peso):
"Hola soy el constructor"
self.nombre = nombre
self.edad = edad
self.altura = altura
self.peso = peso
def gordura(self):
"Hola yo calculo el peso"
return self.peso / self.altura
In [53]:
juan = Persona("Juan Perez", 30, 175, 80)
In [54]:
juan.gordura()
Out[54]:
In [55]:
juan.peso = 76
In [56]:
juan.gordura()
Out[56]:
In [86]:
class Persona:
"Esta es una clase de personas"
def __init__(self, nombre, edad, altura, peso, pos = 0):
"Hola soy el constructor"
self.nombre = nombre
self.edad = edad
self.altura = altura
self.peso = peso
self.pos = pos
def gordura(self):
"Hola yo calculo el peso"
return self.peso / self.altura
def camina(self, pasos):
self.pos += pasos # lo mismo que self.pos = self.pos + pasos
self.peso -= abs(pasos) / 1000
print("Moviendose " + str(pasos) +
" pasos a la posicion " + str(self.pos) + " , adelganzado a " +
str(self.peso) + "kg")
In [87]:
pedro = Persona("Pedro Caminante", 30, 175, 79)
In [88]:
pedro.__dict__
Out[88]:
In [89]:
pedro.camina(5)
In [90]:
pedro.camina(10000)
In [104]:
class Godin(Persona):
def hazte_guey(self):
print("saliendo a fumar...")
def mal_del_puerco(self):
self.peso += 1
print("Fui a la fonda y pedi postre... ahora peso " + str(self.peso) + "kg")
In [105]:
godinez = Godin("...Godinez", 15, 150, 52)
In [106]:
godinez.__dict__
Out[106]:
In [107]:
type(godinez)
Out[107]:
In [108]:
godinez.hazte_guey()
In [119]:
godinez.mal_del_puerco()
In [122]:
godinez.camina(10000)
Cuando hay nuevos campos...
In [140]:
class Programador(Godin):
def __init__(self, nombre, edad, altura, peso, lenguaje, pos = 0):
Persona.__init__(self, nombre, edad, altura, peso, pos)
self.lenguaje = lenguaje
def hazte_guey(self): # override
print("Estoy compilando en " + self.lenguaje + " ...")
In [141]:
seiya = Programador("El Brayan", 21, 170, 100, "Python")
In [142]:
seiya.__dict__
Out[142]:
In [143]:
seiya.hazte_guey()
In [ ]:
In [1]:
def myfun(x,y,k1 = -10, k2 = -100):
print({'x': x, 'y':y, 'k1':k1, 'k2':k2})
In [62]:
myfun(1,2,3,4)
In [63]:
myfun(1,2)
In [64]:
myfun(1,1,1)
In [67]:
myfun(1,2, k2 = 200)
In [68]:
myfun(1,2, k2 = 200, k1 = -1000)
In [3]:
myfun(1, 2, k2 = 200, k1 = -1000)
In [ ]: