프로그래밍에서는 효율적인 실행을 위해 함수를 구성하고 관리해야 하는 경우가 많습니다. 일반적인 접근 방식 중 하나는 목록이나 사전과 같은 데이터 구조에 함수를 저장하여 이를 동적으로 참조하고 호출할 수 있도록 하는 것입니다. 그러나 질문이 생깁니다. 어떻게 이러한 구조에서 함수를 효과적으로 저장하고 검색할 수 있습니까?
예를 들어 다음 접근 방식을 고려하십시오.
<code class="python">mydict = { 'funcList1': [foo(), bar(), goo()], 'funcList2': [foo(), goo(), bar()]}</code>
이 접근 방식은 함수의 결과를 저장하려고 시도합니다. 사전에서 호출(즉, 반환 값)을 수행하지만 예상대로 작동하지 않습니다. 대신 실제 함수 객체 자체를 저장할 방법이 필요합니다.
Python에서 함수는 일급 객체입니다. 즉, 함수는 값으로 처리되고 데이터 구조에 저장될 수 있습니다. 함수를 사전에 효과적으로 저장하려면 반환 값이 아닌 함수 개체를 키에 할당해야 합니다. 예:
<code class="python">dispatcher = {'foo': foo, 'bar': bar}</code>
여기서 foo와 bar는 함수 개체입니다.
이 사전에서 함수를 호출하려면 해당 키를 사용하여 간단히 호출합니다.
<code class="python">dispatcher['foo']() # calls the foo function</code>
목록에 저장된 여러 함수를 실행해야 하는 경우 도우미 함수를 사용하여 목록을 반복하고 각 함수를 호출할 수 있습니다.
<code class="python">dispatcher = {'foobar': [foo, bar], 'bazcat': [baz, cat]} def fire_all(func_list): for f in func_list: f() fire_all(dispatcher['foobar'])</code>
이 접근 방식을 사용하면 함수를 동적으로 구성하고 호출할 수 있습니다. 코드 구성 및 필요한 def 문의 수를 줄입니다.
위 내용은 목록이나 사전과 같은 데이터 구조에서 함수를 어떻게 효과적으로 저장하고 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!