Python에서는 함수를 참조할 수 있는 변수를 만나는 것이 일반적입니다. 변수가 함수를 가리키는지 여부를 확인하는 것은 다양한 프로그래밍 작업에 필수적입니다.
isinstance(x, function)를 사용하여 함수를 식별하려는 시도는 정의되지 않은 "함수" 개체로 인해 실패할 수 있습니다. 대신 다음 접근 방식을 고려하세요.
callable() 함수는 신뢰할 수 있는 지표 역할을 합니다. 다음과 같이 사용할 수 있습니다:
<code class="python">callable(obj)</code>
또는 __call__ 속성이 있는지 확인하세요.
<code class="python">hasattr(obj, '__call__')</code>
types.FunctionTypes 및 Inspection.isfunction도 함수를 식별하는 방법을 제공하지만 몇 가지 제한 사항이 있습니다. 특히 Python이 아닌 C로 구현된 함수에 대해 False를 반환합니다. 이로 인해 아래와 같이 예상치 못한 결과가 발생할 수 있습니다.
<code class="python">>>> isinstance(open, types.FunctionType) False >>> callable(open) True</code>
가장 신뢰할 수 있는 방법은 개체를 호출할 수 있는지 확인하는 것입니다. 가능하다면 함수로 간주됩니다. 이를 "오리 타이핑" 접근 방식이라고 합니다.
<code class="python">callable(obj)</code>
결론적으로, callable() 함수와 __call__ 속성은 Python에서 변수가 함수를 참조하는지 여부를 감지하는 효과적인 방법을 제공합니다. Python이 아닌 함수의 경우 type.FunctionTypes 및 Inspection.isfunction과 관련된 주의 사항에 유의하세요.
위 내용은 Python의 변수가 함수를 나타내는지 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!