>백엔드 개발 >파이썬 튜토리얼 >익명 함수를 선언하기 위해 Python의 람다 문을 사용하는 방법을 설명하는 예

익명 함수를 선언하기 위해 Python의 람다 문을 사용하는 방법을 설명하는 예

高洛峰
高洛峰원래의
2017-01-23 14:36:401707검색

소위 익명 함수는 함수를 정의할 필요가 없고 표현식처럼 사용할 수 있으며 함수 이름이 필요하지 않음을 의미합니다(이름은 종종 나를 귀찮게 합니다). 예를 들어
두 개가 필요합니다. 정수를 더하는 함수는 대개 다음과 같이 정의됩니다.

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, &#39;test&#39;)
(10, &#39;test&#39;)
 
# 使用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, &#39;test&#39;)
(10, &#39;test&#39;)

가독성을 잃지 않으면서 코드가 더 간결해 보이지 않나요?

익명 함수를 선언하기 위해 Python의 람다 문을 사용하는 방법을 설명하는 더 많은 예를 보려면 PHP 중국어 웹사이트에서 관련 기사를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.