私はpython 3kのcpythonコードを読んでい__missing__ます. これら 2 つのメソッドの違いと、それぞれが呼び出されたときの違いは何ですか? dict のサブクラスでメソッドを持つ PyObject を渡す場合、それを強制的に使用するにはどうすればよいですか。dict_subscriptPyDict_GetItem__missing__PyDict_GetItem
1 に答える
1
観察、推測など:
Python 2.x でも同じことが起こります。
dict_subscripthigh_level メソッドと同等のものを実装しているため、Python コードの代入の LHS 以外に現れるdict.__getitem__たびに呼び出されます。adict[somekey]
PyDict_GetItemC API の一部です。更新されていないのは見落としかもしれません。
の冒頭の悲惨なコメントを読んだPyDict_GetItemので、代わりに使用しPyDict_GetItemWithErrorます;-)
おそらく、C レベルの同等の操作をmy_getitem = getattr(my_dict, '__getitem__')1 回行ってから、それを呼び出すことができます。
おそらく、バグ チケットを上げるか、comp.lang.python で尋ねることができます。
于 2010-03-18T22:16:18.077 に答える