소위 익명 함수는 함수를 정의할 필요가 없고 표현식처럼 사용할 수 있으며 함수 이름이 필요하지 않음을 의미합니다(이름은 종종 나를 귀찮게 합니다). 예를 들어
두 개가 필요합니다. 정수를 더하는 함수는 대개 다음과 같이 정의됩니다.
def add(x, y): return x + y
필요한 함수는 아주 잘 완성되는데, 이제 숫자를 더하는 함수가 필요합니다. and strings
def addstr(x, y): return x + str(y)
또 한번 요구사항을 충족시켰는데 갑자기 두 개의 정수를 빼고 나누는 기능이 필요해서 함수를 항상 적어야 하는데 람다 익명 함수를 사용하면 바로 사용할 수 있습니다
# 相加的实现 f = lambda x, y: x + y f_str = lambda x, y: x + str(y)
조작을 단순화하고 기능을 더 단순하게 만들지만 한 가지 단점은 유지 관리성이 좋지 않다는 점입니다. 복잡한 기능이 필요한 경우에는 사용하지 않는 것이 좋습니다.
lambda [arg1[, arg2, ... argN]]: expression
다음 예는 다음과 같습니다. 람다 문(매개변수 없음)의 사용을 보여줍니다.
Python 익명 함수 람다 예(매개변수 없음) Python
# 使用def定义函数的方法 def true(): return True #等价的lambda表达式 >>> lambda :True <function <lambda> at 0x0000000001E42518> # 保留lambda对象到变量中,以便随时调用 >>> true = lambda :True >>> true() True # 使用def定义函数的方法 def true(): return True #等价的lambda表达式 >>> lambda :True <function <lambda> at 0x0000000001E42518> # 保留lambda对象到变量中,以便随时调用 >>> true = lambda :True >>> true() True
다음은 매개변수가 있는 또 다른 예입니다.
Python 익명 함수 람다 예제(매개변수 포함) Python
# 使用def定义的函数 def add( x, y ): return x + y # 使用lambda的表达式 lambda x, y: x + y # lambda也允许有默认值和使用变长参数 lambda x, y = 2: x + y lambda *z: z # 调用lambda函数 >>> a = lambda x, y: x + y >>> a( 1, 3 ) 4 >>> b = lambda x, y = 2: x + y >>> b( 1 ) 3 >>> b( 1, 3 ) 4 >>> c = lambda *z: z >>> c( 10, 'test') (10, 'test') # 使用def定义的函数 def add( x, y ): return x + y # 使用lambda的表达式 lambda x, y: x + y # lambda也允许有默认值和使用变长参数 lambda x, y = 2: x + y lambda *z: z # 调用lambda函数 >>> a = lambda x, y: x + y >>> a( 1, 3 ) 4 >>> b = lambda x, y = 2: x + y >>> b( 1 ) 3 >>> b( 1, 3 ) 4 >>> c = lambda *z: z >>> c( 10, 'test') (10, 'test')
가독성을 잃지 않으면서 코드가 더 간결해 보이지 않나요?
익명 함수를 선언하기 위해 Python의 람다 문을 사용하는 방법을 설명하는 더 많은 예를 보려면 PHP 중국어 웹사이트에서 관련 기사를 참고하세요!