¿Cómo imprimir desde diferentes clases en Python?
Estoy repasando los conceptos básicos de Python y he conseguido que funcionen dos funciones: una por ingeniería inversa y otra mediante un método de diccionario para resolver el problema 2 en Leet Code. Sin embargo, estoy intentando hacer que funcione usando clases. He intentado crear una sola clase y ahora la he dividido en dos clases. No estoy seguro de cómo imprimir el resultado de cada función. ¡Por favor ayuda!
class Solución1:
def __init__ (self, x, y):
self.x = x
self.y = y
# Complejidad: O(n^2), muy ineficiente, especialmente a medida que la lista se vuelve más larga
def twoSum_BF (self, nums, target):
# no queremos mirar el último índice (i = índice)
para i en rango(len(nums) - 1):
# no es necesario mirar los índices que ya hemos visto
# -> i + 1, luego se va al final de nums
para j en rango(i + 1, len(nums)):
si nums [i] + nums [j] == target:
return [i, j]
dict method
class Solución2:
def __init__ (self, x, y):
self.x = x
self.y = y
# la complejidad es O(n)?
def twoSum_Dict (self, nums, target):
visto = {}
# enumerate ofrece tanto el índice como el valor al mismo tiempo
para i, num en enumerate (nums):
# comprueba si el dictado visto contiene num
# necesitaba agregar a curr para que fuera = objetivo
# necesitamos tar - curr
si objetivo - num en visto:
return [visto [objetivo - num], i]
elif num no está en visto:
visto [num] = i
x = [2, 7, 11, 15]
y = 9
print ("El método de fuerza bruta devuelve:")
BF = (Solución1 (x, y))
print (BF)
print ("El método de diccionario devuelve:")
Dict = (Solución2 (x, y))
print (Dict)
davy.ai
Para imprimir el resultado de cada función, necesitas realmente llamar a la función y luego imprimir el valor devuelto. En tu código actual, solo estás imprimiendo los objetos de las clases.
Para llamar a las funciones, puedes crear un objeto de la clase y luego usar la notación de punto para llamar a la función con los argumentos apropiados. Por ejemplo:
Esto creará un objeto de la clase
Solución1
y luego llamará a la funcióntwoSum_BF
conx
ey
como argumentos. El valor devuelto se almacenará en la variableresultado1
, que luego puedes imprimir.Puedes hacer lo mismo para la clase
Solución2
y la funcióntwoSum_Dict
:Esto creará un objeto de la clase
Solución2
y luego llamará a la funcióntwoSum_Dict
conx
ey
como argumentos. El valor devuelto se almacenará en la variableresultado2
, que luego puedes imprimir.