Параметры функции
@ProgHelpBot- Параметры функции
- Значения по умолчанию
- Именованные и позиционные параметры
- Неопределённое количество параметров
Параметры функции
Функция может принимать параметры. Через параметры в функцию можно передавать данные.
def say_hello(name):
print(f"Hello, {name}")
say_hello("Alex") # Hello, Alex
say_hello("Bill") # Hello, Bill
При вызове функции значения передаются параметрам по позиции.
def print_person(name, age):
print(f"Name: {name}, age: {age}")
print_person("Alex", 18) # Name: Alex, age: 18
print_person("Alice" 22) # Name: Bill, age: 22
Значения по умолчанию
Некоторые параметры функции мы можем сделать необязательными, указав для них значения по умолчанию при определении функции.
def say_hello(name="human"):
print(f"Hello, {name}")
say_hello() # Hello, human
say_hello("Alex") # Hello, Alex
Если функция имеет несколько параметров, то необязательные параметры должны идти после обязательных.
def [имя функции]([обязательные], [необязательные]): [инструкции]
Пример:
def print_person(age, name="anonymous"):
print(f"Name: {name}, age: {age}")
print_person(32) # Name: anonymous, age: 32
print_person(18, "Alex") # Name: Alex, age: 18
Именованные и позиционные параметры
В примерах выше при вызове функции значения передаются параметрами функции по позиции. Но также можно передавать значения параметрам по имени. Для этого при вызове функции указывается имя параметра и ему присваивается значение. В этом случай порядок записи значений неважен.
def print_person(name, age):
print(f"Name: {name}, age: {age}")
print_person(age=16, name="Alex") # Name: Alex, age: 18
Параметры могут быть именованными (получают значения только по имени, не зависят от позиции) и позиционными (получают значения только по позиции и зависят от неё). Особенности их расположения следующие:
def [имя функции]([позиционные], /, [прочие], *, [именованные]): [инструкции]
Пример:
def print_person(name, /, age, *, company):
print(f"Name: {name}, age: {age}, company: {company}")
print_person("Alex", 18, company="Google") # Name: Alex, age: 18, company: Google
print_person("Alex", company="Google", age=18) # То же самое
В примере выше age может получать значение как по позиции, так и по имени.
Неопределённое количество параметров
С помощью символа звездочки можно определить параметр, через который можно передавать неопределенное количество значений.
def print_sum(*nums):
result = 0
for i in nums:
result += i
print(result)
print_sum(1, 2, 3, 4, 5) # 15