>  기사  >  백엔드 개발  >  Python의 변수가 함수를 나타내는지 어떻게 확인합니까?

Python의 변수가 함수를 나타내는지 어떻게 확인합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-18 20:05:30615검색

How Do You Determine If a Variable in Python Represents a Function?

변수가 함수를 나타내는지 확인하는 방법

Python에서는 함수를 참조할 수 있는 변수를 만나는 것이 일반적입니다. 변수가 함수를 가리키는지 여부를 확인하는 것은 다양한 프로그래밍 작업에 필수적입니다.

isinstance(x, function)를 사용하여 함수를 식별하려는 시도는 정의되지 않은 "함수" 개체로 인해 실패할 수 있습니다. 대신 다음 접근 방식을 고려하세요.

Python 2.x 및 Python 3.2

callable() 함수는 신뢰할 수 있는 지표 역할을 합니다. 다음과 같이 사용할 수 있습니다:

<code class="python">callable(obj)</code>

Python 3.x(3.2 이전)

또는 __call__ 속성이 있는지 확인하세요.

<code class="python">hasattr(obj, '__call__')</code>

type.FunctionTypes 및 Inspection.isfunction 관련 주의 사항

types.FunctionTypes 및 Inspection.isfunction도 함수를 식별하는 방법을 제공하지만 몇 가지 제한 사항이 있습니다. 특히 Python이 아닌 C로 구현된 함수에 대해 False를 반환합니다. 이로 인해 아래와 같이 예상치 못한 결과가 발생할 수 있습니다.

<code class="python">>>> isinstance(open, types.FunctionType)
False
>>> callable(open)
True</code>

Duck Typing 접근 방식

가장 신뢰할 수 있는 방법은 개체를 호출할 수 있는지 확인하는 것입니다. 가능하다면 함수로 간주됩니다. 이를 "오리 타이핑" 접근 방식이라고 합니다.

<code class="python">callable(obj)</code>

결론적으로, callable() 함수와 __call__ 속성은 Python에서 변수가 함수를 참조하는지 여부를 감지하는 효과적인 방법을 제공합니다. Python이 아닌 함수의 경우 type.FunctionTypes 및 Inspection.isfunction과 관련된 주의 사항에 유의하세요.

위 내용은 Python의 변수가 함수를 나타내는지 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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