जवाबों:
डिफ़ॉल्ट तर्क मानों का मूल्यांकन फ़ंक्शन डिफाइन-टाइम में किया जाता है, लेकिन self
एक तर्क केवल फ़ंक्शन कॉल समय पर उपलब्ध है। इस प्रकार तर्क सूची में तर्क एक दूसरे को संदर्भित नहीं कर सकते।
किसी तर्क को डिफ़ॉल्ट रूप None
से कोड में परीक्षण के लिए जोड़ना और जोड़ना एक सामान्य पैटर्न है :
def p(self, b=None):
if b is None:
b = self.a
print b
यदि आप Google के माध्यम से यहां पहुंचे हैं, तो कृपया यह जांचना सुनिश्चित करें कि आपने किसी वर्ग फ़ंक्शन के पहले पैरामीटर के रूप में स्वयं को दिया है। खासकर यदि आप फ़ंक्शन के अंदर उस ऑब्जेक्ट के लिए मानों को संदर्भित करने का प्रयास करते हैं।
def foo():
print(self.bar)
> NameError: नाम 'self' परिभाषित नहीं है
def foo(self):
print(self.bar)