В Python, в общем-то, реализована передача аргументов по ссылке. Что это значит, и почему нам это важно знать?
my_pizza_toppings = your_pizza_toppings = []
my_pizza_toppings.append('Анчоусы')
my_pizza_toppings.append('Оливки')
your_pizza_toppings.append('Ананас')
your_pizza_toppings.append('Ветчина')
print(my_pizza_toppings)
print(your_pizza_toppings)
my_pizza_toppings = []
your_pizza_toppings = []
my_pizza_toppings.append('Анчоусы')
my_pizza_toppings.append('Оливки')
your_pizza_toppings.append('Ананас')
your_pizza_toppings.append('Ветчина')
print(my_pizza_toppings)
print(your_pizza_toppings)
class Pizza:
toppings = []
def __init__(self, ...):
...
...
def add_topping(self, topping):
...
self.toppings.append(topping)
...
my_pizza = Pizza()
my_pizza.add_topping('Анчоусы')
my_pizza.add_topping('Оливки')
your_pizza = Pizza()
your_pizza.add_topping('Ананас')
your_pizza.add_topping('Ветчина')
print(my_pizza.toppings)
print(your_pizza.toppings)
class Pizza:
def __init__(self, ...):
self.toppings = []
...
def add_topping(self, topping):
...
self.toppings.append(topping)
...
def add_topping(topping_name, toppings = []):
toppings.append(topping_name)
return toppings
add_topping('Анчоусы')
# ['Анчоусы']
my_pizza_toppings = add_topping('Анчоусы')
my_pizza_toppings = add_topping('Оливки', my_pizza_toppings)
your_pizza_toppings = add_topping('Ананас')
your_pizza_toppings = add_topping('Ветчина', your_pizza_toppings)
def add_topping(topping_name, toppings=None):
if toppings is None:
toppings = []
toppings.append(topping_name)
return toppings
Источник: Bas Codes