__new__ को परिभाषित करने के बाद कोई पैरामीटर लेता है मैं वास्तव में जहां इस छोटे से कोड में त्रुटि है नहीं मिलता है:लेखन त्रुटि: ऑब्जेक्ट()
#!/usr/bin/python3
class Personne:
def __init__(self, nom, prenom):
print("Appel de la méthode __init__")
self.nom = nom
self.prenom = prenom
def __new__(cls, nom, prenom):
print("Appel de la méthode __new__ de la classe {}".format(cls))
return object.__new__(cls, nom, prenom)
personne = Personne("Doe", "John")
ऊपर प्रस्तुत इस कोड को मुझे त्रुटि दे रहा है:
Traceback (most recent call last):
File "/home/bilal/Lien vers python/21_meta_classes/1_instanciation.py", line 21, in <module>
personne = Personne("Doe", "John")
File "/home/bilal/Lien vers python/21_meta_classes/1_instanciation.py", line 14, in __new__
return object.__new__(cls, nom, prenom)
TypeError: object() takes no parameters
Fwiw, ओपी के कोड वास्तव में, Python3.2 में काम करता है, हालांकि त्रुटि वास्तव में Python3.3 + – plamut
धन्यवाद भाई में होता है ऐसा लगता है कि यह काम कर रहा है। कृपया, मुझे बताएं, पाइथन बाकी तर्कों को __init__ पर कैसे पास करता है, क्या आप मुझे प्रक्रिया की व्याख्या कर सकते हैं (यदि आपके पास समय है) ?? – Sidahmed
'__init__' को कॉल 'ऑब्जेक्ट .__ new__'' द्वारा नहीं बनाया गया है, बल्कि 'टाइप .__ कॉल__' (क्लास ऑब्जेक्ट से बाध्य) द्वारा किया गया है। तो 'ऑब्जेक्ट .__ new__' को वही तर्क देखने की आवश्यकता नहीं है जो आपके '__init__' फ़ंक्शन की अपेक्षा करता है। – Blckknght