Как записать атрибуты каждого экземпляра в переменную класса, при этом родительский класс записывает экземпляры всех клаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как записать атрибуты каждого экземпляра в переменную класса, при этом родительский класс записывает экземпляры всех кла

Сообщение Anonymous »

Привет, надеюсь, кто-нибудь сможет мне помочь, я новичок в этом, поэтому не уверен, что упускаю что-то очевидное. У меня есть класс Food, а затем подкласс для каждой категории продуктов питания.
Я хочу иметь dict в качестве переменной в каждом классе, которая записывает атрибут из каждого экземпляра класса. \В настоящее время я пытаюсь получить имя экземпляра и цену. Поэтому предпочтительно, чтобы каждый словарь внутри подкласса содержал имена и цены экземпляров этого класса, в то время как я хочу, чтобы тот же словарь в родительском классе содержал имена и цены экземпляров в каждом из подклассов.
Возможно ли это? Я предполагал, что так работает наследование, однако с попытками, которые я предпринял до этого момента, мне удалось добиться только того, чтобы каждый класс, включая подклассы и родительский класс, содержал каждое имя экземпляра и цену. из каждого класса.
Этого я не понимаю, поскольку не понимаю, как словарь класса Burger получает доступ к экземплярам из словаря класса Desserts?
Очень надеюсь, что кто-нибудь сможет помочь, поскольку я не знаю, как решить эту задачу, если это выполнимо в рамках классов.
class Food:

prices = {}

def __init__(self, product, price):
self.product = product
self.price = price
self.prices[self.product] = [self.price]

class Burger(Food):
pass

class Desserts(Food):
pass

#--->burger menu
burger_option_1 = Burger("burger option 1", 15)
burger_option_2 = Burger("burger option 2", 20)
burger_option_3 = Burger("burger option 3", 25)

#--->dessert menu
dessert_option_1 = Desserts("dessert option 1", 15)
dessert_option_2 = Desserts("dessert option 2", 20)
dessert_option_3 = Desserts("dessert option 3", 25)

print(f"Food.prices: {Food.prices}")
print(f"Burger.prices: {Burger.prices}")
print(f"Desserts.prices: {Desserts.prices}")

output:
Food.prices: {'burger option 1': [15], 'burger option 2': [20],
'burger option 3': [25], 'dessert option 1': [15], 'dessert option
2': [20], 'dessert option 3': [25]}
Burger.prices: {'burger option 1': [15], 'burger option 2': [20],
'burger option 3': [25], 'dessert option 1': [15], 'dessert option
2': [20], 'dessert option 3': [25]}
Desserts.prices: {'burger option 1': [15], 'burger option 2':
[20], 'burger option 3': [25], 'dessert option 1': [15], 'dessert
option 2': [20], 'dessert option 3': [25]}


Подробнее здесь: https://stackoverflow.com/questions/788 ... -having-th
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»