Python 2.6 ile temel bir Monostate'im var. mutlu bana aşağıdaki eskimesi uyarı verirMonostate ile Python Deprecation Uyarıları __new__ - Birisi nedenini açıklayabilir mi?
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)
Bunu bulmak googling biraz Bug #1683368 eklendikten sonra. Anlayamadığım şey bunun ne anlama geldiğini. Bu, aşağıdaki çizgi hakkında şikâyette bulunuyor. Bu, aşağıdaki gibi görünüyor: Tamam. Birisi bunun neden bir sorun olduğunu Laymens terimiyle açıklayabilir. Anladığım kadarıyla, "bu liste gibi diğer yapılarla tutarsızdır" ama nedenini anladığımdan emin değilim. Birisi bunu bana bunu yapmanın doğru yolu gösterdiğini açıklar mı?
sayesinde bu uyarıyı neden olur
--Guido? * Args ve ** kwargs'ları çıkar ve bombalar, onları beklerken __init__ tarafından ihtiyaç duyulduğu için bombalar. Son ifadeyi engellemeye çalıştığım bir tanesi var :-) 3k'da çalışmasını istiyorum. – rh0dium
Dil tasarımcıları ile tartışamam. "Yeni herhangi bir argüman almaz" derlerse, bunun hiçbir argüman almamasını sağlarım. __init__' ve '__new__' benzer şekilde çalışır, belki de kullanım durumunuz yeni yerine init kullanmalıdır. –