मैंने केवल पाइथन सीखना शुरू कर दिया और पाया कि मैं एक फ़ंक्शन को किसी अन्य फ़ंक्शन के पैरामीटर के रूप में पास कर सकता हूं। अब अगर मैं foo(bar())
पर कॉल करता हूं तो यह फ़ंक्शन पॉइंटर के रूप में पास नहीं होगा लेकिन प्रयुक्त फ़ंक्शन का रिटर्न वैल्यू होगा। कॉलिंग foo(bar)
फ़ंक्शन को पास कर देगी, लेकिन इस तरह से मैं कोई अतिरिक्त तर्क पास नहीं कर पा रहा हूं। क्या होगा यदि मैं एक फ़ंक्शन पॉइंटर पास करना चाहता हूं जो bar(42)
पर कॉल करता है?पायथन, फ़ंक्शन पॉइंटर पैरामीटर के लिए तर्क कैसे पास करें?
मैं किसी भी समारोह को दोहराने की क्षमता चाहता हूं चाहे मैं इसके द्वारा किए गए तर्कों के बावजूद।
def repeat(function, times):
for calls in range(times):
function()
def foo(s):
print s
repeat(foo("test"), 4)
इस मामले में समारोह foo("test")
माना जाता है एक पंक्ति में 4 बार कहा जाता है। foo
के बजाय repeat
पर "परीक्षण" पास किए बिना इसे पूरा करने का कोई तरीका है?
सिडेनोट: ये "एफ नहीं हैं" अंकन पॉइंटर्स "! पायथन कार्यों में वस्तुओं हैं। –