Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)에서 함수가 여러 값을 반환하는 4가지 방법

파이썬에서는 하나의 함수에서 여러 개의 값을 동시에 반환할 수 있습니다. 일반적으로 튜플(tuple), 리스트(list), 딕셔너리(dictionary), 또는 사용자 정의 클래스의 객체 형태로 반환하는 방식이 많이 사용됩니다.

각 방법별로 예제 코드와 함께 자세히 살펴보겠습니다.

1. 튜플(Tuple)로 반환하기

파이썬에서 가장 간단하고 널리 쓰이는 방법입니다. 쉼표로 구분하여 여러 값을 반환하면 자동으로 튜플이 생성됩니다.

>>> def function():
      a=10; b=10
      return a,b

>>> x=function()
>>> type(x)
<class 'tuple'>
>>> x
(10, 10)
>>> x,y=function()
>>> x,y
(10, 10)

위 예제처럼 반환된 튜플을 x, y = function()과 같은 형태로 받으면 언패킹(unpacking)을 통해 각 변수에 개별적으로 값을 할당할 수 있습니다.

2. 리스트(List)로 반환하기

대괄호([])로 묶어 반환하면 리스트 형태로 여러 값을 전달할 수 있습니다. 반환 후에 요소를 추가하거나 수정해야 하는 경우에 유용합니다.

>>> def function():
      a=10; b=10
      return [a,b]

>>> x=function()
>>> x
[10, 10]
>>> type(x)
<class 'list'>

3. 딕셔너리(Dictionary)로 반환하기

키(key)와 값(value)의 쌍으로 데이터를 관리하고 싶다면 딕셔너리 형태로 반환하는 것이 좋습니다. 어떤 값이 어떤 의미를 가지는지 명확하게 표현할 수 있다는 장점이 있습니다.

>>> def function():
      d=dict()
      a=10; b=10
      d['a']=a; d['b']=b
      return d

>>> x=function()
>>> x
{'a': 10, 'b': 10}
>>> type(x)
<class 'dict'>

4. 사용자 정의 클래스 객체로 반환하기

여러 값이 서로 연관된 데이터라면, 직접 정의한 클래스의 객체로 묶어서 반환할 수도 있습니다. 속성 이름을 통해 값에 접근할 수 있어 코드의 가독성과 유지보수성이 높아집니다.

>>> class tmp:
def __init__(self, a,b):
self.a=a
self.b=b


>>> def function():
      a=10; b=10
      t=tmp(a,b)
      return t

>>> x=function()
>>> type(x)
<class '__main__.tmp'>
>>> x.a
10
>>> x.b
10

마무리

정리하면, 파이썬에서는 함수가 여러 값을 반환해야 할 때 상황에 따라 적절한 자료구조를 선택하면 됩니다. 간단한 값 전달에는 튜플, 이후 수정이 필요한 경우에는 리스트, 의미 있는 이름으로 구분하고 싶을 때는 딕셔너리, 복잡하고 연관된 데이터는 사용자 정의 클래스 객체를 활용하는 것이 좋습니다.