>  기사  >  백엔드 개발  >  익명 함수란 무엇입니까? Python 익명 함수의 용도는 무엇입니까?

익명 함수란 무엇입니까? Python 익명 함수의 용도는 무엇입니까?

Tomorin
Tomorin원래의
2018-08-17 17:54:456988검색

함수를 전달할 때 명시적으로 함수를 정의할 필요가 없는 경우도 있습니다. 익명 함수 를 직접 전달하는 것이 더 편리합니다.

Python에서는 익명 함수에 대한 지원이 제한되어 있습니다. 여전히 map() 함수를 예로 들면, f(x)=x2를 계산할 때 f(x) 함수를 정의하는 것 외에도 익명 함수를 직접 전달할 수도 있습니다:

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
#🎜🎜 #비교해보면 알 수 있습니다. 익명 함수 람다 x: x * x는 실제로 다음과 같습니다.

def f(x):
    return x * x

키워드 람다는 익명 함수를 나타내고 콜론 앞의 x는 함수 매개변수를 나타냅니다.

익명 함수에는 표현식이 하나만 있을 수 있다는 제한이 있습니다. 반환 값은 표현식의 결과입니다.

익명 함수를 사용하면 함수에 이름이 없으므로 함수 이름 충돌을 걱정할 필요가 없다는 장점이 있습니다. 또한 익명 함수는 함수 개체이기도 합니다. 익명 함수를 변수에 할당한 다음 해당 변수를 사용하여 함수를 호출할 수도 있습니다.

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)25

마찬가지로 익명 함수를 반환할 수도 있습니다. 예를 들어 반환 값으로 사용됩니다.

def build(x, y):
    return lambda: x * x + y * y

세부 정보 캡슐화, 보안 및 제어 가능성 향상, 전역 범위의 함수 외부에서 자주 사용되므로 전역 범위에 너무 많은 변수 및 함수 추가를 제한합니다. .

전역 범위에서 블록 수준 범위를 사용하면 익명 함수에 대한 참조가 없기 때문에 클로저가 메모리를 차지하는 문제를 줄일 수 있으며, 함수가 실행되는 한 해당 범위 체인이 즉시 소멸될 수 있습니다.

블록 수준(비공개) 범위 모방:

function box(){
    for(var i=0;i<5;i++){  //块级作用域(js无)
    }   
     var i //即便重新声明,也不会影响之前的值
    alert(i);//5
 }
box();


위 내용은 익명 함수란 무엇입니까? Python 익명 함수의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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