Содержание страницы
В Python мы можем возвращать несколько значений из функции. Ниже приведены различные способы
Использование объекта (object)
Это похоже на C/C++ и Java, мы можем создать класс (в C, структуру) для хранения нескольких значений и возврата объекта класса.
# A Python program to return multiple # values from a method using class class Test: def __init__(self): self.str = "string example" self.x = 20 # This function returns an object of Test def fun(): return Test() # Driver code to test above method t = fun() print(t.str) print(t.x)
Результат работы кода:
string example 20
Использование кортежа (tuple)
Кортеж представляет собой последовательность элементов, разделенных запятыми. Он создается с или без (). Кортежи неизменны.
# A Python program to return multiple # values from a method using tuple # This function returns a tuple def fun(): str = "string example" x = 20 return str, x; # Return tuple, we could also # write (str, x) # Driver code to test above method str, x = fun() # Assign returned tuple print(str) print(x)
Результат работы кода:
string example 20
Использование списка (list)
Список похож на массив элементов, созданный с помощью квадратных скобок. Они отличаются от массивов тем, что могут содержать элементы разных типов. Списки отличаются от кортежей тем, что они изменяемы.
# A Python program to return multiple # values from a method using list # This function returns a list def fun(): str = "string example" x = 20 return [str, x]; # Driver code to test above method list = fun() print(list)
Результат работы кода:
['string example', 20]
Использование словаря (dictionary)
Словарь похож на хэш или карту на других языках.
# A Python program to return multiple # values from a method using dictionary # This function returns a dictionary def fun(): d = dict(); d['str'] = "string example" d['x'] = 20 return d # Driver code to test above method d = fun() print(d)
Результат работы кода:
{'x': 20, 'str': 'string example'}
Использование класса данных (Data Class)
В Python 3.7 и более поздних версиях класс данных можно использовать для возврата класса с автоматически добавленными уникальными методами. Модуль класса данных имеет декоратор и функции для автоматического добавления сгенерированных специальных методов, таких как __init__() и __repr__() в пользовательские классы.
from dataclasses import dataclass @dataclass class Book_list: name: str perunit_cost: float quantity_available: int = 0 # function to calculate total cost def total_cost(self) -> float: return self.perunit_cost * self.quantity_available book = Book_list("Introduction to programming.", 300, 3) x = book.total_cost() # print the total cost # of the book print(x) # print book details print(book) # 900 Book_list(name='Python programming.', perunit_cost=200, quantity_available=3)
Результат работы кода:
900 Book_list(name='Introduction to programming.', perunit_cost=300, quantity_available=3) Book_list(name='Python programming.', perunit_cost=200, quantity_available=3)
Leave a Reply