1
Python / Objetos imprimen None
« en: Enero 08, 2023, 10:52:51 pm »
Buenas, tengo una duda, resulta que estoy intentando diseñar una clase en Python pero cada vez que imprimo los objetos se me agrega
un None que no consigo ver de dónde sale...
Todo está en un mismo archivo
Por cierto, estoy empezando en este lenguaje por lo tanto tal vez ignore alguna práctica que sea más recomendable...
La clase es la siguiente y abajo el main.
class Producto:
contador_productos = 0
def __init__(self,nombre: str, precio: float):
self._id = Producto._generar_id()
self._nombre = nombre
self._precio = self._verificar_precio(precio)
@staticmethod
def _generar_id():
Producto.contador_productos += 1
return Producto.contador_productos
def obtener_id(self):
return self._id
def obtener_nombre(self):
return self._nombre
def obtener_precio(self):
return self._precio
def _verificar_precio(self,precio):
if precio > 0:
return precio
else:
return -1
def imprimir_producto(self):
print(f'{self._id}, {self._nombre}, {self._precio}')
def main():
a = Producto("Mouse",1700)
b = Producto("Teclado",8000)
c = Producto("Monitor",15000)
print(a.obtener_id(), a.obtener_nombre(), a.obtener_precio())
print(b.obtener_id(), b.obtener_nombre(), b.obtener_precio())
print(c.obtener_id(), c.obtener_nombre(), c.obtener_precio())
print(a.imprimir_producto())
print(b.imprimir_producto())
print(c.imprimir_producto())
if __name__ == '__main__':
main()
salida:
1 Mouse 1700
2 Teclado 8000
3 Monitor 15000
1, Mouse, 1700
None
2, Teclado, 8000
None
3, Monitor, 15000
None
un None que no consigo ver de dónde sale...
Todo está en un mismo archivo
Por cierto, estoy empezando en este lenguaje por lo tanto tal vez ignore alguna práctica que sea más recomendable...
La clase es la siguiente y abajo el main.
class Producto:
contador_productos = 0
def __init__(self,nombre: str, precio: float):
self._id = Producto._generar_id()
self._nombre = nombre
self._precio = self._verificar_precio(precio)
@staticmethod
def _generar_id():
Producto.contador_productos += 1
return Producto.contador_productos
def obtener_id(self):
return self._id
def obtener_nombre(self):
return self._nombre
def obtener_precio(self):
return self._precio
def _verificar_precio(self,precio):
if precio > 0:
return precio
else:
return -1
def imprimir_producto(self):
print(f'{self._id}, {self._nombre}, {self._precio}')
def main():
a = Producto("Mouse",1700)
b = Producto("Teclado",8000)
c = Producto("Monitor",15000)
print(a.obtener_id(), a.obtener_nombre(), a.obtener_precio())
print(b.obtener_id(), b.obtener_nombre(), b.obtener_precio())
print(c.obtener_id(), c.obtener_nombre(), c.obtener_precio())
print(a.imprimir_producto())
print(b.imprimir_producto())
print(c.imprimir_producto())
if __name__ == '__main__':
main()
salida:
1 Mouse 1700
2 Teclado 8000
3 Monitor 15000
1, Mouse, 1700
None
2, Teclado, 8000
None
3, Monitor, 15000
None