Python Academy · पाठ

फ़ंक्शन फ़र्स्ट-क्लास ऑब्जेक्ट के रूप में

क्लोज़र और फ़ंक्शन को तर्क के रूप में पास करना समझें।

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

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

परिचय

Python में फ़ंक्शन प्रथम-श्रेणी के ऑब्जेक्ट होते हैं: उन्हें आर्गुमेंट के रूप में भेजा जा सकता है, लौटाया जा सकता है और डेटा संरचनाओं में संग्रहीत किया जा सकता है।

फ़ंक्शन ऑब्जेक्ट होते हैं

def double(x): return x*2 एक फ़ंक्शन ऑब्जेक्ट बनाता है। double केवल एक नाम है। आप इसे असाइन कर सकते हैं: fn = double; fn(5) काम करता है।
def double(x): return x * 2
fn = double
print(fn(5))
print(type(fn))

फ़ंक्शन को आर्गुमेंट के रूप में भेजना

def apply(func, val): return func(val) — func एक कॉल करने योग्य आर्गुमेंट है। यह उच्च-क्रम प्रोग्रामिंग है।
def apply(func, val): return func(val)
print(apply(abs, -7))
print(apply(str, 42))

कंटेनर में फ़ंक्शन संग्रहीत करना

ops = [add, sub, mul] फ़ंक्शन ऑब्जेक्ट को एक सूची में संग्रहीत करता है। इटरेट करके कॉल करें: for op in ops: op(a, b)।
ops = [str.upper, str.lower, str.strip]
for op in ops:
    print(op('  Hello  '))

फ़ंक्शन लौटाना

कोई फ़ंक्शन दूसरा फ़ंक्शन लौटा सकता है। def make_adder(n): def adder(x): return x+n; return adder
def make_adder(n):
    def adder(x): return x + n
    return adder
add10 = make_adder(10)
print(add10(5), add10(20))

क्लोज़र

क्लोज़र अपने घेरने वाले स्कोप से चर कैप्चर करता है। आंतरिक फ़ंक्शन make_adder में n को 'क्लोज़ ओवर' करता है।
def counter(start=0):
    count = [start]
    def inc():
        count[0] += 1
        return count[0]
    return inc
c = counter()
print(c(), c(), c())

अनाम फ़ंक्शन के रूप में Lambda

lambda x: x*2 एक-अभिव्यक्ति वाला अनाम फ़ंक्शन है। यह छोटे कॉलबैक के लिए उपयोगी है, लेकिन यदि तर्क जटिल हो तो उसे नाम दें।
nums = [3, 1, 4, 1, 5]
print(sorted(nums, key=lambda x: -x))

map() और filter()

map(func, iterable) प्रत्येक एलिमेंट पर func लागू करता है। filter(pred, iterable) उन एलिमेंट को रखता है जिनके लिए pred True है।
nums = [1, 2, 3, 4, 5]
print(list(map(lambda x: x**2, nums)))
print(list(filter(lambda x: x%2==0, nums)))

functools.reduce()

reduce(func, seq) किसी अनुक्रम को समेटता है: reduce(lambda a,b: a+b, [1,2,3,4]) का परिणाम 10 होता है।
from functools import reduce
print(reduce(lambda a,b: a*b, [1,2,3,4,5]))

कॉल करने योग्य होने की जाँच

callable(obj) True लौटाता है यदि obj को कॉल किया जा सकता हो। फ़ंक्शन, वर्ग और __call__ वाले ऑब्जेक्ट कॉल करने योग्य होते हैं।
print(callable(print))
print(callable(42))
class C:
    def __call__(self): pass
print(callable(C()))

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

func.__name__, func.__doc__, func.__annotations__, inspect.signature(func) फ़ंक्शन का मेटाडेटा देते हैं।
import inspect
def greet(name: str) -> str:
    '''Returns a greeting.'''
    return f'Hi {name}'
print(greet.__name__, greet.__annotations__)
print(inspect.signature(greet))

त्वरित जाँच

Python में क्लोज़र क्या होता है?

पुनरावलोकन

फ़ंक्शन प्रथम-श्रेणी के ऑब्जेक्ट होते हैं। उन्हें आर्गुमेंट के रूप में भेजें, फ़ंक्शन से लौटाएँ और कंटेनर में संग्रहीत करें। क्लोज़र घेरने वाले स्कोप को कैप्चर करते हैं। सरल एक-पंक्ति फ़ंक्शन के लिए lambda का उपयोग करें।

आगे बढ़ते रहें

आप बहुत अच्छी प्रगति कर रहे हैं! अगली अवधारणा में निपुणता हासिल करने के लिए आगे बढ़ते रहें।
शुरुआत निःशुल्क

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

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

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

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

क्या “फ़ंक्शन फ़र्स्ट-क्लास ऑब्जेक्ट के रूप में” पाठ निःशुल्क है?

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

“फ़ंक्शन फ़र्स्ट-क्लास ऑब्जेक्ट के रूप में” में मैं क्या सीखूँगा?

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

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

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

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

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

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

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

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

  1. फ़ंक्शन फ़र्स्ट-क्लास ऑब्जेक्ट के रूप में
  2. कस्टम डेकोरेटर लिखना
  3. @property डेकोरेटर
  4. @classmethod और @staticmethod
← Python Academy पर वापस जाएँ