Python: создать функцию, вызывающую атрибут класса - PullRequest
0 голосов
/ 10 марта 2020

У меня есть следующий сценарий:

 #we create a class for a product and its description

class Producto:
    def __init__(self, id_producto, linea_produccion, eval_numerica, eval_visual):
        self.id_producto = id_producto
        self.linea_produccion = linea_produccion
        self.eval_numerica = eval_numerica
        self.eval_visual = eval_visual



#here I enter product´s description
def lee_producto():
    id_producto = input()
    linea_produccion = input()
    eval_numerica = (float(input()))
    verificacion = input()
    eval_visual = ( verificacion == "s" )
    return Producto(id_producto, linea_produccion, eval_numerica, eval_visual)

#We call the previous function and add products
def lee_y_anade_producto(lista):
    nuevo_producto = lee_producto()
    lista.append(nuevo_producto)

#we call the previous function as many times as n
lista = []
n = int(input("cuantos productos vas a dar de alta:   ")) 
for i in range(n):
    lee_y_anade_producto(lista)

Пока все, что я сделал, это подал информацию в мой объект класса, я не знаю, как сделать это задом наперед, теперь, когда у меня есть Информация так, как я хочу. Как я могу получить к ней доступ, в зависимости от того, какую информацию я хочу?

  1. Показать все продукты в строке (это self.linea_produccion a1, b2,c3) и показать все элементы в зависимости от того, что Я выбираю линию (a1, b2, c3)

. 2. И мне нужно вычислить self.eval_numeric среднее для всех предметов, независимо от всего остального.

Это для целей обучения, я очень хочу понять, как это сделать, а не просто копировать-вставить.

1 Ответ

1 голос
/ 10 марта 2020

В вашем примере у вас есть lista, который является списком ваших Producto объектов. Вот что у вас есть:

lista = []
n = int(input("cuantos productos vas a dar de alta:   ")) 
for i in range(n):
    lee_y_anade_producto(lista)

После этого вы можете перебирать список и получать атрибуты каждого объекта следующим образом:

for object in lista:
    id_producto = object.id_producto
    linea_produccion = object.linea_produccion

Все, что установлено как self.attribute в __init__ можно вызвать object.attribute.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...