Python Academy · पाठ

आंशिक फ़ंक्शन

functools.partial का उपयोग करें

पाठ 4, कुल 4 में से13 चरण

आंशिक फ़ंक्शन, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

आंशिक फ़ंक्शन क्या है

functools.partial किसी मौजूदा फ़ंक्शन के कुछ आर्ग्युमेंट पहले से भरकर नया फ़ंक्शन बनाता है। यह आर्ग्युमेंट को पहले से लोड करने जैसा है, ताकि आप परिणाम को कम आर्ग्युमेंट के साथ कॉल कर सकें।

इसे from functools import partial से इम्पोर्ट करें।

from functools import partial
def power(base, exp):
    return base ** exp
square = partial(power, exp=2)
print(square(5))

क्रमिक आर्ग्युमेंट तय करना

partial को दिए गए क्रमिक आर्ग्युमेंट फ़ंक्शन के पैरामीटर को बाएँ से भरते हैं। शेष आर्ग्युमेंट partial को कॉल करते समय दिए जाते हैं।

from functools import partial
def multiply(a, b):
    return a * b
double = partial(multiply, 2)
print(double(10))
print(double(50))

कीवर्ड आर्ग्युमेंट तय करना

partial को दिए गए कीवर्ड आर्ग्युमेंट डिफ़ॉल्ट बन जाते हैं, जिन्हें कॉल के समय अब भी बदला जा सकता है।

from functools import partial
def greet(name, greeting='Hello'):
    return greeting + ', ' + name
hola = partial(greet, greeting='Hola')
print(hola('Ada'))
print(hola('Bob', greeting='Hey'))

अंतर्निहित फ़ंक्शन के साथ आंशिक फ़ंक्शन

आप अंतर्निहित फ़ंक्शन के लिए भी आंशिक फ़ंक्शन बना सकते हैं। यहाँ हम int से आधार-2 पूर्णांक पार्सर बनाते हैं।

from functools import partial
binary = partial(int, base=2)
print(binary('1010'))
print(binary('1111'))

अधिक साफ़ कॉलबैक

कॉलबैक के लिए आंशिक फ़ंक्शन बहुत उपयोगी होते हैं, जहाँ आपको बिना आर्ग्युमेंट या एक आर्ग्युमेंट वाला फ़ंक्शन पास करना होता है, लेकिन संदर्भ पहले से भरना होता है।

from functools import partial
def log(level, message):
    return '[' + level + '] ' + message
error = partial(log, 'ERROR')
print(error('disk full'))

map में आंशिक फ़ंक्शन

आंशिक फ़ंक्शन map जैसे उच्च-क्रम फ़ंक्शन में आसानी से लगाया जा सकता है। इसमें एक आर्ग्युमेंट तय रहता है, जबकि दूसरा प्रत्येक आइटम के अनुसार बदलता है।

from functools import partial
def add(a, b):
    return a + b
add10 = partial(add, 10)
print(list(map(add10, [1, 2, 3])))

आंशिक फ़ंक्शन का निरीक्षण

आंशिक फ़ंक्शन ऑब्जेक्ट रैप किए गए फ़ंक्शन को .func के माध्यम से, तय किए गए क्रमिक आर्ग्युमेंट को .args के माध्यम से और तय किए गए कीवर्ड को .keywords के माध्यम से उपलब्ध कराता है।

from functools import partial
def f(a, b, c):
    return (a, b, c)
p = partial(f, 1, c=3)
print(p.func.__name__)
print(p.args)
print(p.keywords)

आंशिक फ़ंक्शन को क्रमशः जोड़ना

आप किसी दूसरे आंशिक फ़ंक्शन से एक और आंशिक फ़ंक्शन बना सकते हैं और चरण-दर-चरण अधिक आर्ग्युमेंट तय कर सकते हैं।

from functools import partial
def volume(l, w, h):
    return l * w * h
base = partial(volume, 2)
slab = partial(base, 3)
print(slab(4))

आंशिक फ़ंक्शन बनाम लैम्ब्डा

lambda भी यही काम कर सकता है, लेकिन आर्ग्युमेंट तय करने के लिए partial अक्सर अधिक स्पष्ट होता है और निरीक्षण के लिए रैप किए गए फ़ंक्शन को उपलब्ध कराता है।

from functools import partial
def power(base, exp):
    return base ** exp
cube_p = partial(power, exp=3)
cube_l = lambda b: power(b, 3)
print(cube_p(2), cube_l(2))

वास्तविक उदाहरण: राउंडिंग

अंतर्निहित round का आंशिक रूप बनाकर दो दशमलव स्थानों तक राउंड करने वाला फ़ंक्शन बनाएँ।

from functools import partial
round2 = partial(round, ndigits=2)
print(round2(3.14159))
print(round2(2.71828))

क्लास के लिए partialmethod

संबंधित functools.partialmethod क्लास की परिभाषा के अंदर फ़ंक्शन के लिए यही काम करता है और किसी फ़ंक्शन के आर्ग्युमेंट पहले से भरता है।

from functools import partialmethod
class Light:
    def set(self, state):
        self.state = state
        return state
    on = partialmethod(set, True)
    off = partialmethod(set, False)
l = Light()
print(l.on())
print(l.off())

त्वरित जाँच

functools.partial क्या करता है?

पुनरावलोकन: आंशिक फ़ंक्शन

आपने सीखा कि functools.partial:

  • कुछ आर्ग्युमेंट पहले से भरे हुए (क्रमिक या कीवर्ड) नया फ़ंक्शन बनाता है।
  • कॉल के समय पहले से तय कीवर्ड डिफ़ॉल्ट को बदलने देता है।
  • कॉलबैक, map और दोहराव कम करने के लिए आदर्श है।
  • .func, .args, .keywords उपलब्ध कराता है और इसका फ़ंक्शन-वाला रूप partialmethod है।
from functools import partial
add = lambda a, b: a + b
plus1 = partial(add, 1)
print(plus1(41))
शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “आंशिक फ़ंक्शन” पाठ निःशुल्क है?

हाँ—“आंशिक फ़ंक्शन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“आंशिक फ़ंक्शन” में मैं क्या सीखूँगा?

functools.partial का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“आंशिक फ़ंक्शन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्रथम-श्रेणी फ़ंक्शन
  2. क्लोज़र और मुक्त चर
  3. nonlocal और परिवर्तनीय स्थिति
  4. आंशिक फ़ंक्शन
← Python Academy पर वापस जाएँ