मान लीजिए मेरे पास फ़ंक्शन की एक सूची है
f1 (x, y), f2 ( X, y), .... मैं नीचे दिए गए फ़ंक्शन को कैसे परिभाषित कर सकता हूँ:
z (x, y) = f1 (x, y ) + F2 (x, y) + ... मैं बाद में एक्स निर्दिष्ट करने में सक्षम होना चाहता हूँ। इसलिए अगर कोई y = c मान डालता है, तो मैं चाहता हूं कि z फ़ंक्शन x का फ़ंक्शन बन जाए! साधारण मामले में जब आपके पास एक फ़ंक्शन होता है, तो आप एक्स का एक समारोह होने के लिए एफ (एक्स, वाई) एक्स बना सकते हैं y = c निर्दिष्ट कर सकते हैं:
Z = lambda x: f (x, c) लेकिन यह एक ऐसा तरीका एक से अधिक फ़ंक्शन के लिए काम नहीं करेगा!
पिछले जवाबों को छूने, हम वांछित व्यवहार बनाने के लिए functools.partial में फेंक सकते हैं। अपूर्ण कार्यान्वित कार्यों से नए फ़ंक्शन का निर्माण करने के लिए हम आंशिक फ़ंक्शन कॉल (हैस्केल निर्माण के समान) कर सकते हैं। इसे जांचें: <प्री> से फ़ंक्टूल्स आयात आंशिक फ़ैंक्स = [लैम्ब्डा एक्स, वाई: x + y] * 10 # दस प्लेसहोल्डर फ़ंक्शंस की सूची। Def z (फ़ंक्शंस, एक्स, वाई): फ़ंक्शन के लिए एफ (एफ (एक्स, वाई) फ़ंक्शन के लिए) ए = आंशिक (z, फ़्ंक्स, 1) # 'ए' मूल रूप से समान है: लैम्ब्डा y: z (फ़नक्स , 1, वाई) 0x7fd0c90246d8 & gt; पर एक # & lt; functools पर्तारी वस्तु मुद्रित करें। प्रिंट (1) # 20 प्रिंट एक (2) # 30 प्रिंट एक (3) # 40 और यहां:
No comments:
Post a Comment