문제

나는 hasattr 내장 함수의 소스 코드를 보고 있었는데 내 관심을 불러일으키는 몇 줄을 발견했습니다.

Py_INCREF(Py_False);
return Py_False;

...

Py_INCREF(Py_True);
return Py_True;

그렇지 않습니까? Py_False 그리고 Py_True 글로벌 가치?단지 호기심에서 벗어나 Python이 이러한 변수에 대한 참조 횟수를 유지하는 이유는 무엇입니까?

도움이 되었습니까?

해결책

모든 객체 처리를 균일하게 만드는 것입니다.함수의 반환 값을 처리하는 C 코드를 작성하는 경우 해당 개체의 참조 횟수를 늘리거나 줄여야 합니다.함수가 True를 반환하면 참조 카운트를 조작할지 여부를 알기 위해 그것이 특수 객체 중 하나인지 확인하고 싶지 않습니다.나는 모든 사물을 동일하게 다룰 수 있다.

True 및 False(그리고 None, btw)를 다른 모든 객체와 동일하게 처리함으로써 C 코드는 전체적으로 훨씬 간단해졌습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top