Fantástico trabajo de videos. Le agradezco infinitamente sus conocimientos. Tengo un poco más de cincuenta años y ahora tengo la oportunidad de estudiar mi doctorado. Hace tiempo que no programaba... pero usted lo ha echo muy fácil. MIL GRACIAS !!!!!!
Luego de varios meses/años viendo tutoriales sobre qué son clases a que se refieren como funcionan y en qué podría usarla al fin las he comprendido con tus vídeos, muchas gracias.
Excelente clase se aprende fácil y rápido, felicidades!! En mi humilde opinión, quedarían mejor los métodos sobrecargados igual a, menor que y mayor que, de la siguiente manera: #metodo igual a def __eq__(self, b): if self.num*b.den == b.num/self.den: return True else: return False #metodo mayor que def __gt__(self, b): if self.num*b.den > b.num/self.den: return True else: return False #metodo menor que def __lt__(self, b): if self.num*b.den < b.num/self.den: return True else: return False Para probarlo se ejecuta en el main: print ('a es igual a b?: ', a == b) print ('a es mayor que b?: ', a > b) print ('a es menor que b?: ', a < b)
muy buen trabajo, se entiende muy bien, este codigo le ingrese clases herencias con el uso super, sobrecargar con str y agrege add, qt , mul y sub, pero en la parte de divison trato de usar div y en al llamarlo, marca error ya que no esta dividiendo en la parte de fracciones, todo es multipicacion ..y pues lo deje como metodo normal por que no se puede llamar , de lo demas perfecto e ingrese un menu y pide las fracciones. class Calculadora(): def __init__(self,numerador=0,denominador=1): if isinstance (numerador,int): self.numerador=numerador else: self.numerador=0
if isinstance(denominador,int): self.denominador=denominador else: self.denominador=1
# def __del__():#destructor en base de datos # pass
def main(): Presentacion='''*******Calculadora de 2 Fracciones********
Ingresa lo que se te pida:
''' print(Presentacion)
menu=''' \t***M e n u
1)Suma 2)Resta 3)Multiplicacion 4)Division 5)Comparar si son iguales 6)Salir ''' while True: print(menu) op=int(input('Elige una opcion: ' )) num1=int(input('
Ingresa el Numerador 1: ')) den1=int(input('ingresa el denominador 1: ')) a=Op_Basicas(num1,den1) print(a)
num2=int(input('Ingresa el Numerador 2: ')) den2=int(input('ingresa el denominador 2: ')) b=Op_Basicas(num2,den2) print(b)
Excelente vídeo. Muy bien acompañada la teoría con la práctica. En general yo para el método __str__() prefiero usar f-string en vez de la concatenación de cadenas.
¡Excelente video y trabajo! - Tus videos son muy útiles. ¡Gracias por compartirlos!. Nota: en el minuto 19:20 hay pequeño error de codificación del video y el audio se escucha muy acelerado.
Consulta, como puedo depurar en Visual Estudio Code, intento hacerlo con los break poin , pero no logro que funcione bien la barra de herramientas del debug, probé reinstalano Visual y lo mismo. Probé con Spyder y allí si logro realizar una buena depuración. Pero me gustaría saber porque no funciona en Visual. Puedes por favor hacer un video sobre el tema, ya que en la medida que se pone mas compleja la programación, es interesante poder aprovechar al máximo esa herramienta. Muchas gracias, muy buena la explicación!!!!
Muy buenos videos. Consulta, cuando quiero ejecutar el codigo en la terminal no me devuelve nada, tengo que activar algo para que me corra los tipo class? Con otro tipo de codigos anda bien
Como se puede hacer un arreglo de ventanas, o de botones o de etiquetas? Por ejemplo: ventana_principal (0) ventana_principal (1) ventana_principal (2)
muy buen video muchas gracias, pero tengo una duda en la parte de destructores, Cundo el puntero "a" referencia a otro objeto, el objeto anterior es eliminado() siempre y cuando se utilice el destructor, si no se utiliza el destructor, ¿el objeto anterior sigue existiendo?
que buena pedagogía, muy claro todo. mil gracias.
Fantástico trabajo de videos. Le agradezco infinitamente sus conocimientos. Tengo un poco más de cincuenta años y ahora tengo la oportunidad de estudiar mi doctorado. Hace tiempo que no programaba... pero usted lo ha echo muy fácil. MIL GRACIAS !!!!!!
Luego de varios meses/años viendo tutoriales sobre qué son clases a que se refieren como funcionan y en qué podría usarla al fin las he comprendido con tus vídeos, muchas gracias.
Excelente clase se aprende fácil y rápido, felicidades!!
En mi humilde opinión, quedarían mejor los métodos sobrecargados igual a, menor que y mayor que, de la siguiente manera:
#metodo igual a
def __eq__(self, b):
if self.num*b.den == b.num/self.den:
return True
else:
return False
#metodo mayor que
def __gt__(self, b):
if self.num*b.den > b.num/self.den:
return True
else:
return False
#metodo menor que
def __lt__(self, b):
if self.num*b.den < b.num/self.den:
return True
else:
return False
Para probarlo se ejecuta en el main:
print ('a es igual a b?: ', a == b)
print ('a es mayor que b?: ', a > b)
print ('a es menor que b?: ', a < b)
muy buen trabajo, se entiende muy bien, este codigo le ingrese clases herencias con el uso super, sobrecargar con str y agrege add, qt , mul y sub, pero en la parte de divison trato de usar div y en al llamarlo, marca error ya que no esta dividiendo en la parte de fracciones, todo es multipicacion ..y pues lo deje como metodo normal por que no se puede llamar , de lo demas perfecto e ingrese un menu y pide las fracciones.
class Calculadora():
def __init__(self,numerador=0,denominador=1):
if isinstance (numerador,int):
self.numerador=numerador
else:
self.numerador=0
if isinstance(denominador,int):
self.denominador=denominador
else:
self.denominador=1
# def __del__():#destructor en base de datos
# pass
def __str__(self):
return "("+str (self.numerador) +"/"+str(self.denominador) +")"
class Op_Basicas(Calculadora):
def __init__(self, numerador, denominador):
super().__init__(numerador, denominador)
def __str__(self):
return "("+str (self.numerador) +"/"+str(self.denominador) +")"
def __mul__(self,b):
n=self.numerador *b.numerador
d=self.denominador*b.denominador
r=Calculadora(n,d)
return r
def __add__(self,c):
n=self.numerador*c.denominador+self.denominador*c.numerador
d=self.denominador*c.denominador
r=Calculadora(n,d)
return r
def __sub__(self,b):
n=self.numerador*b.denominador-self.denominador*b.numerador
d=self.denominador*b.denominador
r=Calculadora(n,d)
return r
def division(self,obj):
n=self.numerador*obj.denominador
d=self.denominador*obj.numerador
x=Calculadora(n,d)
return x
def __eq__(self,b):
if self.numerador / self.denominador == b.numerador / b.denominador:
return True
else:
return False
def main():
Presentacion='''*******Calculadora de 2 Fracciones********
Ingresa lo que se te pida:
'''
print(Presentacion)
menu='''
\t***M e n u
1)Suma
2)Resta
3)Multiplicacion
4)Division
5)Comparar si son iguales
6)Salir
'''
while True:
print(menu)
op=int(input('Elige una opcion: ' ))
num1=int(input('
Ingresa el Numerador 1: '))
den1=int(input('ingresa el denominador 1: '))
a=Op_Basicas(num1,den1)
print(a)
num2=int(input('Ingresa el Numerador 2: '))
den2=int(input('ingresa el denominador 2: '))
b=Op_Basicas(num2,den2)
print(b)
print("
")
if op==1:
print(a)
print(b)
print("+_______________")
r=a+b
print(r)
elif op==2:
print(a)
print(b)
print("-_______________")
r=a-b
print(r)
elif op==3:
print(a)
print(b)
print("x_______________")
r=a*b
print(r)
elif op==4:
print(a)
print(b)
print("/_______________")
r=a.division(b)
print(r)
elif op==5:
print(a)
print(b)
print("_______________")
r= (a==b)
if r== True:
print('Son Equivalentes')
else:
print('No lo son')
else:
break
print("
")
if __name__=="__main__":
main()
Eres un crack, recién que logro entender ... después de buscar en muchos lados, Saludos!.
Excelente vídeo. Muy bien acompañada la teoría con la práctica. En general yo para el método __str__() prefiero usar f-string en vez de la concatenación de cadenas.
👍👍👍
Bien detallado.
Muchas gracias.
Eres el mejor!!!!! Gracias por compartir tus valiosos conocimientos.
Gracias a ti
Muchas gracias solo vi dos videos de POO y al fin lo comprendo, muchas gracias esa forma de explicar es maravilloso!
Un avance fundamental en lo hasta ahora visto en este tipo de clases. Claro y oreciso y a la médula. Se agradece y SALUD!!!
Excelentes videos de esta serie saludos muy buen didáctica
Execelente. Muchas gracias por tu trabajo.
Excelente contenido, llevo bastante programando en python y nunca había entendido al 100 la abstracción de clases.
gracias por el tiempo y por compartir conocimiento
Gracias Compadres, EXCELENTE!!!
muy útiles sus enseñanzas, graciassss
Excelentes videos. Muchas gracias.
Gracias infinitamente explicas muy bien haces un gran trabajo sigue adelante :3
Para los que quieran hacer la división deben usar ´def __truediv__(self, b):´ y realizan el algoritmo de la división
Así es, muchas gracias, viene en el siguiente video
¡Excelente video y trabajo! - Tus videos son muy útiles. ¡Gracias por compartirlos!.
Nota: en el minuto 19:20 hay pequeño error de codificación del video y el audio se escucha muy acelerado.
bien explicado!! gracias
Consulta, como puedo depurar en Visual Estudio Code, intento hacerlo con los break poin , pero no logro que funcione bien la barra de herramientas del debug, probé reinstalano Visual y lo mismo. Probé con Spyder y allí si logro realizar una buena depuración. Pero me gustaría saber porque no funciona en Visual. Puedes por favor hacer un video sobre el tema, ya que en la medida que se pone mas compleja la programación, es interesante poder aprovechar al máximo esa herramienta. Muchas gracias, muy buena la explicación!!!!
MUY BUENOS VÍDEOS
Muy buenos videos. Consulta, cuando quiero ejecutar el codigo en la terminal no me devuelve nada, tengo que activar algo para que me corra los tipo class? Con otro tipo de codigos anda bien
great
Como se puede hacer un arreglo de ventanas, o de botones o de etiquetas?
Por ejemplo:
ventana_principal (0)
ventana_principal (1)
ventana_principal (2)
acabo de probar el metodo __div__ y me tiraba error en su lugar use el metodo __truediv__
Se debe a algo en particular ?.
Gracias por los videos.
muy buen video muchas gracias, pero tengo una duda en la parte de destructores, Cundo el puntero "a" referencia a otro objeto, el objeto anterior es eliminado() siempre y cuando se utilice el destructor, si no se utiliza el destructor, ¿el objeto anterior sigue existiendo?
No entiendo tu pregunta
Supongo que una variable ejecuta el destructor si las sobreescribes en su propio ambito
Alguien me puede decir como puedo imprimir el texto que se encuentra en un botón?
Gracias.
odio que use el light theme y fotos con fondo blanco xd
Excelente trabajo. Mil gracias