Зміст курсу
Посібник з функцій Python
Посібник з функцій Python
Довільні Аргументи
Ми вже розглянули позиційні та необов'язкові аргументи функції. Але що робити, коли аргументів багато або ми не знаємо всіх аргументів, які мають бути передані у функцію? Ми можемо вирішити цю проблему, використовуючи довільні аргументи (аргументи змінної довжини).
Ці аргументи дозволяють функції приймати довільну кількість аргументів. Це корисно, коли ви хочете визначити функцію, яка може приймати змінну кількість вхідних значень без заздалегідь визначеної кількості аргументів.
Примітка
Зверніть увагу, що кожен аргумент може бути структурою даних - списком, словником тощо. Ви можете передати довільну кількість таких структур, використовуючи довільні аргументи.
У Python ви можете визначити довільні аргументи як один позиційний аргумент, використовуючи зірочку *
перед ім'ям аргумента. Ось приклад:
# Define function with arbitrary arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
У коді вище ми використали *
, щоб заявити, що змінна values
містить кілька довільних аргументів і має бути інтерпретована як кортеж. Потім ми використали вбудовану функцію sum
для розрахунку суми. Ми бачимо, що результат є правильним для всіх прикладів, і нам не потрібно безпосередньо вказувати кількість аргументів. Зверніть увагу, що ми використовуємо цей аргумент за іменем без *
у тілі функції.
Примітка
Щоб визначити кортеж довільних аргументів, достатньо використати
*
перед іменем аргумента. Але рекомендується використовувати конструкцію*args
. Це покращує інтерпретованість і читабельність коду.
def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
As you can see from the results:
- When the function is called without any arguments,
args
will be an empty tuple()
. - When the function is called with one argument,
args
will be a tuple with one element(1,)
. - When the function is called with multiple arguments, all of them are stored in the tuple, for example
(1, 2, 3, 'hello', [4, 5, 6])
.
Thus, with *args
, you can work with the values just like you would with any other tuple in Python.
Swipe to show code editor
Write a function that calculates the average value of an arbitrary number of arguments. Use args
as the name of an arbitrary argument.
Дякуємо за ваш відгук!
Довільні Аргументи
Ми вже розглянули позиційні та необов'язкові аргументи функції. Але що робити, коли аргументів багато або ми не знаємо всіх аргументів, які мають бути передані у функцію? Ми можемо вирішити цю проблему, використовуючи довільні аргументи (аргументи змінної довжини).
Ці аргументи дозволяють функції приймати довільну кількість аргументів. Це корисно, коли ви хочете визначити функцію, яка може приймати змінну кількість вхідних значень без заздалегідь визначеної кількості аргументів.
Примітка
Зверніть увагу, що кожен аргумент може бути структурою даних - списком, словником тощо. Ви можете передати довільну кількість таких структур, використовуючи довільні аргументи.
У Python ви можете визначити довільні аргументи як один позиційний аргумент, використовуючи зірочку *
перед ім'ям аргумента. Ось приклад:
# Define function with arbitrary arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
У коді вище ми використали *
, щоб заявити, що змінна values
містить кілька довільних аргументів і має бути інтерпретована як кортеж. Потім ми використали вбудовану функцію sum
для розрахунку суми. Ми бачимо, що результат є правильним для всіх прикладів, і нам не потрібно безпосередньо вказувати кількість аргументів. Зверніть увагу, що ми використовуємо цей аргумент за іменем без *
у тілі функції.
Примітка
Щоб визначити кортеж довільних аргументів, достатньо використати
*
перед іменем аргумента. Але рекомендується використовувати конструкцію*args
. Це покращує інтерпретованість і читабельність коду.
def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
As you can see from the results:
- When the function is called without any arguments,
args
will be an empty tuple()
. - When the function is called with one argument,
args
will be a tuple with one element(1,)
. - When the function is called with multiple arguments, all of them are stored in the tuple, for example
(1, 2, 3, 'hello', [4, 5, 6])
.
Thus, with *args
, you can work with the values just like you would with any other tuple in Python.
Swipe to show code editor
Write a function that calculates the average value of an arbitrary number of arguments. Use args
as the name of an arbitrary argument.
Дякуємо за ваш відгук!