В 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 toppingsadd_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