파이썬 내부 함수/중첩 함수

Python은 많은 기능을 제공하며 그러한 기능 중 하나는 내부 함수 또는 중첩 함수를 구현할 수 있다는 것입니다. 간단히 말해서 다른 함수 내에서 함수를 정의할 수 있습니다. 파이썬 내부 함수/중첩 함수에 대해 알아보자.

파이썬 내부 함수




def outerFunction(a, b):
    def innerFunction(c, d):
        return c*d
    return innerFunction(a, b)



print(outerFunction(10, 20))
Output:
200


위의 코드에서 외부 함수는 두 개의 정수 인수로 호출되고 외부 함수에는 외부 함수의 인수로 내부 함수를 호출하고 반환하는 내부 함수가 있습니다.

Python의 이 기능은 함수를 캡슐화하는 데 도움이 됩니다.

외부 함수의 외부 범위에서 내부 함수를 호출하려고 하는 경우.

내부 함수를 호출합니다.




def outerFunction(a, b):
    def innerFunction(c, d):
        return c*d
    return innerFunction(a, b)


print(innerFunction(10, 20))
Error:
Traceback (most recent call last):
  File ".\sr.py", line 7, in <module>
    print(innerFunction(10, 20))
NameError: name 'innerFunction' is not defined


따라서 우리는 내부 기능이 전역 범위에서 캡슐화된다는 결론을 내릴 수 있습니다.

DRY 원칙(자신을 반복하지 마십시오)



내부 기능 기능은 또한 코드 중복을 방지하고 DRY 원칙을 따르는 데 도움이 됩니다.

def wish(name):
    def say(Quote):
        return f"Good Morning, {name}"
    return say(name)


print(wish("HTD"))
Output:
Good Morning, HTD


Python의 내부 함수 범위



Python 내부 함수 또는 중첩 함수는 외부 함수의 변수와 전역 변수에 액세스할 수 있습니다.

text = "Hey"


def wish():
    name = "HTD"

    def say():
        quote = "Good Morning"
        return f"{text} {quote}, {name}"
    return say()


print(wish())
Output:
Hey Good Morning, HTD


내부 함수 변수에는 해당 함수로만 제한되는 로컬 범위가 있습니다. 내부 함수 변수는 외부 함수 범위에서 액세스할 수 없습니다.

원본 게시물에서 자세히 알아보기: Python Inner Function

좋은 웹페이지 즐겨찾기