Как вы добавляете 2 входа из аргумента вместе?

Я сделал этот код, и теперь я хочу добавить из класса «Продукт» цену вместе. Итак, у меня есть 2 продукта: Компьютер и Nintendo, и я хочу сложить цену, могу ли я сделать для этого определение, чтобы из продуктов 3 и 4 она также складывалась? Надеюсь, мой вопрос имеет смысл, я новичок в программировании.

class Customer:
    def __init__(self, ID, name, address):
        self.ID = ID
        self.name = name
        self.address = address
    

    def customer_information(self):
        print('ID: '+ self.ID + ', Name: ' + self.name + ', Address: '+ self.address)

class Product:
    def __init__(self, product_name, product_ID, price):
        self.product_name = product_name
        self.product_ID = product_ID
        self.price = price

    def product_information(self):
        print(self.product_name+', '+self.product_ID + ', €'+str(self.price))

class Order:
    def __init__(self):
        self.customer = []
        self.product = []

    def add1(self, product):
        self.product.append(product)

    def customer_data(self, customer):
        self.customer.append(customer)
    

    def show(self):
        for c in self.customer:
            c.customer_information()
        print('This order contains:')
        for p in self.product:
            p.product_information()

customer1 = Customer('542541', 'Name', 'Rotterdam')
customer2 = Customer('445412', 'Name', 'Schiedam')
        
product1 = Product('Computer', '34456', 200.00)
product2 = Product('Nintendo', '12345', 14.99)
product3 = Product('Camera', '51254', 50.00)
product4 = Product('Go-pro', '51251', 215.00)


myOrder = Order()
myOrder.customer_data(customer1)
myOrder.add1(product1)
myOrder.add1(product2)


myOrder1 = Order()
myOrder1.customer_data(customer2)
myOrder1.add1(product3)
myOrder1.add1(product4)

myOrder.show()
myOrder1.show()

Извините, но нет, ваш вопрос не имеет смысла. Когда вы говорите «определение», о каком Добрый определения вы говорите? Определение функции? Определение класса? Я также не понимаю, что вы хотите, чтобы это неопределенное определение делать. Каков его вход и каков ожидаемый результат или результат?

Aran-Fey 09.03.2019 20:39
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
60
2

Ответы 2

Да, вы можете создать другую переменную в порядке классов, например:

    def __init__(self):
        self.customer = []
        self.product = []
        self.total = 0

и добавляйте цену каждого продукта к общей сумме всякий раз, когда продукт добавляется в список-

    def add1(self, product):
        self.product.append(product) 
        self.total += product.price

Похоже, вы хотите получить сумму всех цен на товары или общую сумму заказа. Оба являются одним и тем же результатом, но у вас есть два класса, которые содержат одинаковую информацию, поэтому вы можете вычислить суммы либо с помощью Product, либо с помощью Order:

productsum = product1.price + product2.price + product3.price + product4.price
ordersum = sum([p.price for p in myOrder.product]) + sum([p.price for p in myOrder1.product])


print(productsum) # 479.99
print(ordersum)   # 479.99

В любом случае вы получите один и тот же ответ, просто выберите, как вы хотите его реализовать.

Другие вопросы по теме