मैं अपने लिए अजगर में सीखने की कोशिश कर रहा हूंवर्ग और मुझे इसके लिए () ऑपरेटर को ओवरलोड करना होगा। हालांकि, मुझे समझ नहीं आ रहा है कि मैं () ऑपरेटर को ओवरलोड करने के बारे में कैसे जा सकता हूं। क्या आप कोष्ठकों को ओवरलोड करने के पीछे के तर्क की व्याख्या कर सकते हैं? क्या मुझे पहले (और फिर) ओवरलोड करना चाहिए या मैं इनमें से कोई भी कर सकता हूं? इसके अलावा, क्या कोष्ठक संचालक के लिए विशेष नाम है?
उत्तर:
उत्तर № 1 के लिए 33के कार्यान्वयन से आप किसी वस्तु को कॉल करने योग्य बना सकते हैं __call__
तरीका:
class FunctionLike(object):
def __call__(self, a):
print "I got called with %r!" % (a,)
fn = FunctionLike()
fn(10)
# --> I got called with 10!