Python2.6の基本的なモノステートがあります。
class Borg(object):
__shared_state = {}
def __new__(cls, *args, **kwargs):
self = object.__new__(cls, *args, **kwargs)
self.__dict__ = cls.__shared_state
return self
def __init__(self, *args, **kwargs):
noSend = kwargs.get("noSend", False)
reportLevel = kwargs.get("reportLevel", 30)
reportMethods = kwargs.get("reportMethods", "BaseReport")
contacts= kwargs.get("contacts", None)
a = Borg(contacts="Foo", noSend="Bar", )
これにより、次の非推奨の警告が表示されます。
untitled:4: DeprecationWarning: object.__new__() takes no parameters
self = object.__new__(cls, *args, **kwargs)
少しグーグルした後、これはバグ#1683368に添付されていることがわかりました。私が理解できないのは、これが何を意味するのかということです。次の行について不平を言っています
self = object.__new__(cls, *args, **kwargs)
これは問題ないようです。誰かがこれが問題である理由を素人の言葉で説明できますか?「これはリストのような他のビルトインと矛盾している」ことは理解していますが、その理由がわかりません。誰かがこれが私にそれをする正しい方法を示していると説明しますか?
ありがとう