> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬 반환 함수란 무엇입니까? (예시분석)

파이썬 반환 함수란 무엇입니까? (예시분석)

乌拉乌拉~
풀어 주다: 2018-08-22 16:17:45
원래의
1741명이 탐색했습니다.

다음 글에서는 파이썬의 반환 함수가 무엇인지 알아보겠습니다. Python의 반환 기능에 대한 관련 지식에 대해 알아보십시오. 더 이상 고민하지 말고 다음 기사를 살펴보겠습니다.

Python 함수를 반환 값으로:

함수를 매개 변수로 허용하는 것 외에도 고차 함수는 함수를 결과 값으로 반환할 수도 있습니다.

변수 매개변수의 합을 구현해 보겠습니다. 일반적으로 합산 함수는 다음과 같이 정의됩니다.

def calc_sum(*args):
    ax = 0
    for n in args:
        ax = ax + n    return ax
로그인 후 복사

그런데 합을 바로 계산할 필요는 없지만 후속 코드에서 필요에 따라 계산하면 어떻게 될까요? 합산 결과를 반환하는 대신 합산 함수를 반환할 수 있습니다:

def lazy_sum(*args):
    def sum():
        ax = 0
        for n in args:
            ax = ax + n        return ax    return sum
로그인 후 복사

lazy_sum()을 호출할 때 반환되는 것은 합산 결과가 아니라 합산 함수입니다:

>>> f = lazy_sum(1, 3, 5, 7, 9)
>>> f
<function lazy_sum.<locals>.sum at 0x101c6ed90>
로그인 후 복사

함수 f를 호출할 때, 실제 합계 계산:

>>> f()25
로그인 후 복사

이 예에서는 함수 sum을lazy_sum에 정의하고, 내부 함수 sum은 외부 함수lazy_sum의 매개 변수 및 지역 변수를 참조할 수 있습니다. 반환된 함수에 매개변수와 변수가 저장되는 '클로저(Closure)'라는 프로그램 구조는 대단한 위력을 갖고 있다.

lazy_sum()을 호출할 때 한 가지 더 알아두세요. 동일한 매개변수가 전달되더라도 각 호출은 새 함수를 반환합니다.

>>> f1 = lazy_sum(1, 3, 5, 7, 9)
>>> f2 = lazy_sum(1, 3, 5, 7, 9)
>>> f1==f2False
로그인 후 복사

f1() 및 f2()의 호출 결과는 각각에 영향을 미치지 않습니다. 다른.

위 내용은 이 글에 설명된 내용이 전부입니다. 이 글은 python의 반환 기능과 관련된 지식을 주로 소개하는 내용입니다. 위 내용을 이해하는 데 참고하시기 바랍니다. 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다.

더 많은 관련 지식을 알고 싶으시면 PHP 중국어 홈페이지의 Python tutorial 칼럼을 방문해 주세요.

위 내용은 파이썬 반환 함수란 무엇입니까? (예시분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿