質問

私は私の興味をそそった数行をはhasattr組み込み関数のソースコードを見ていると気づいた。

Py_INCREF(Py_False);
return Py_False;

...

Py_INCREF(Py_True);
return Py_True;

Py_Falseおよびグローバル値をPy_Trueていませんか?ただ、純粋な好奇心から、なぜPythonは、これらの変数の参照カウントを維持するのですか?

役に立ちましたか?

解決

これは、すべてのオブジェクトの処理を均一にするのです。私は、関数からの戻り値を処理するCコードを書いている場合は、私は、そのオブジェクトの参照カウントをインクリメントし、デクリメントする必要があります。関数が真の私を返した場合、私は、その参照カウントを操作するかどうかを知るために、これらの特別なオブジェクトの一つだかどうかを確認する必要がありますする必要はありません。私は同じように、すべてのオブジェクトを扱うことができます。

他のすべてのオブジェクトと同じ(ところで、およびなし)TrueおよびFalse治療しないことにより、Cのコードが全体はるかに簡単である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top