6

これを読んでいる間:Pythonのメタクラスとは何ですか?、私は__new__次のスニペットを使用して使用することを学んでいます:-

class a(object):
    pass

a.__new__(int,'abcdef',(int,),{})

__new__を使用した呼び出しに問題がある可能性がありますa.。しかし、次のエラーが表示されますが、その意味はわかりません:-

TypeError: object.__new__(int) is not safe, use int.__new__()

の使用法に何か関係がある場合は__new__、本を読んで修正できます。しかし、誰かがこのメッセージが来る理由を説明してもらえますか:

object.__new__(int) is not safe, use int.__new__()

4

1 に答える 1

4

簡単に言えば、2.6 より前 -object.__new__ 無視された引数...今では実際にそれらで何かを行う可能性があります...したがって、警告は、何か異なることが起こる可能性があるということです。

この投稿__new__ が引数を失うための最善の回避策についてのアイデアはありますか? - より詳細な説明があります。

おそらく、 http://docs.python.org/library/functions.html#typeも見たいと思うでしょう。

Python のすべてのメタ要素で何が可能かを知ることは素晴らしいことですが、警告として、私はそれについてあまり夢中になりません.

于 2012-10-18T10:20:20.583 に答える