Elementor Header #8

35. Аргументы по умолчанию

Добро пожаловать на тридцать пятый урок по Python! Сегодня мы обсудим аргументы по умолчанию в функциях. Аргументы по умолчанию позволяют задавать значения параметров, которые будут использоваться, если вызов функции не передает явных значений для этих параметров. Это упрощает вызов функций и делает их более гибкими.

Что такое аргументы по умолчанию?

Аргументы по умолчанию — это параметры функции, которые имеют заранее определенные значения. Если при вызове функции не переданы значения для этих параметров, используются значения по умолчанию.

Пример функции с аргументами по умолчанию

				
					def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()        # Вывод: Hello, Guest!
greet("Alice") # Вывод: Hello, Alice!

				
			

Использование аргументов по умолчанию

Пример 1: Функция с одним аргументом по умолчанию

				
					def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()        # Вывод: Hello, Guest!
greet("Alice") # Вывод: Hello, Alice!

				
			

Пример 2: Функция с несколькими аргументами по умолчанию

				
					def greet(name="Guest", age=18):
    print(f"Hello, {name}! You are {age} years old.")

greet()                 # Вывод: Hello, Guest! You are 18 years old.
greet("Alice")          # Вывод: Hello, Alice! You are 18 years old.
greet("Bob", 25)        # Вывод: Hello, Bob! You are 25 years old.

				
			

Пример 3: Функция с обязательными и необязательными аргументами

				
					def greet(greeting, name="Guest"):
    print(f"{greeting}, {name}!")

greet("Hi")              # Вывод: Hi, Guest!
greet("Hello", "Alice")  # Вывод: Hello, Alice!

				
			

Важные замечания

Позиция аргументов по умолчанию: Аргументы по умолчанию всегда должны следовать после обязательных аргументов. В противном случае возникнет синтаксическая ошибка.

				
					# Неправильно:
# def greet(name="Guest", greeting):
#     print(f"{greeting}, {name}!")

				
			

Изменяемые типы данных в качестве аргументов по умолчанию: Избегайте использования изменяемых типов данных (например, списков или словарей) в качестве значений по умолчанию, так как они могут приводить к неожиданным результатам.

				
					def add_to_list(item, my_list=[]):
    my_list.append(item)
    return my_list

print(add_to_list(1))  # Вывод: [1]
print(add_to_list(2))  # Вывод: [1, 2] (ожидалось [2])

				
			

Вместо этого используйте None и инициализируйте изменяемый объект внутри функции:

				
					def add_to_list(item, my_list=None):
    if my_list is None:
        my_list = []
    my_list.append(item)
    return my_list

print(add_to_list(1))  # Вывод: [1]
print(add_to_list(2))  # Вывод: [2]

				
			

Заключение

Сегодня вы узнали о аргументах по умолчанию в функциях Python. Аргументы по умолчанию делают функции более гибкими и удобными для использования, упрощая вызов функций с различными наборами аргументов.

logo