पायथन फ़ंक्शन ओवरलोडिंग नहीं करता है। यह एक कमजोर टाइप की गई भाषा होने का एक परिणाम है। इसके बजाय आप तर्क तर्क में अज्ञात संख्या निर्दिष्ट कर सकते हैं और उनकी व्याख्या के साथ सौदा कर सकते हैं।
कुछ तरीके हैं जो आप कर सकते हैं। आप विशिष्ट वैकल्पिक तर्क निर्दिष्ट कर सकते हैं: यह कॉलिंग
def func1(arg1, arg2=None):
if arg2 != None:
print "%s %s" % (arg1, arg2)
else:
print "%s" % (arg1)
हम पाते हैं:
>>> func1(1, 2)
1 2
या आप अनाम तर्कों की संख्या ज्ञात नहीं निर्दिष्ट कर सकते हैं (अर्थातएक सरणी में पारित तर्क):
def func2(arg1, *args):
if args:
for item in args:
print item
else:
print arg1
यह कॉलिंग हम पाते हैं:
>>> func2(1, 2, 3, 4, 5)
2
3
4
5
या आप नामित तर्कों की एक अज्ञात नंबर (यानी तर्क एक शब्दकोश में पारित) निर्दिष्ट कर सकते हैं:
def func3(arg1, **args):
if args:
for k, v in args.items():
print "%s %s" % (k, v)
else:
print arg1
इसे कॉल करना हमें मिलता है:
>>> func3(1, arg2=2, arg3=3)
arg2 2
arg3 3
आप इन निर्माणों का उपयोग उस व्यवहार को उत्पन्न करने के लिए कर सकते हैं जिसे आप ओवरलोडिंग में ढूंढ रहे थे।
* कृपया * वस्तु से विरासत! आप वास्तव में * पुराने शैली की कक्षा नहीं चाहते हैं, है ना? (यह पायथन 3 में एक गैर-मुद्दा होगा, लेकिन आपके प्रिंट स्टेटमेंट्स मुझे बताते हैं कि आप पाइथन 2 का उपयोग कर रहे हैं।) –