विभिन्न प्रोग्रामिंग भाषाओं में, प्रथम श्रेणी की वस्तुएं वे वस्तुएं होती हैं, जिन्हें समान रूप से नियंत्रित किया जा सकता है। प्रथम श्रेणी की वस्तुओं को डेटा संरचनाओं के रूप में, कुछ अन्य कार्यों के कुछ मापदंडों के रूप में, नियंत्रण संरचनाओं आदि के रूप में संग्रहीत किया जा सकता है। हम कह सकते हैं कि पायथन में एक फ़ंक्शन प्रथम श्रेणी का कार्य है, यदि यह प्रथम श्रेणी की वस्तु के सभी गुणों का समर्थन करता है।पी>
प्रथम श्रेणी के कार्यों के गुण क्या हैं?
- यह एक वस्तु प्रकार का एक उदाहरण है
- कार्यों को चर के रूप में संग्रहीत किया जा सकता है
- प्रथम श्रेणी फ़ंक्शन को कुछ अन्य फ़ंक्शन के तर्क के रूप में पास करें
- अन्य फ़ंक्शन से फ़ंक्शन लौटाएं
- कार्यों को सूचियों, सेटों या कुछ अन्य डेटा संरचनाओं में संग्रहीत करें।
सबसे पहले हम देखेंगे कि पायथन में फंक्शन्स को ऑब्जेक्ट के रूप में कैसे इस्तेमाल किया जा सकता है। पायथन में, एक फ़ंक्शन को चर के रूप में असाइन किया जा सकता है। इसे चर के रूप में निर्दिष्ट करने के लिए, फ़ंक्शन को नहीं कहा जाएगा। अतः कोष्ठक '()' नहीं होगा।
उदाहरण कोड
def cube(x): return x*x*x res = cube(5) print(res) my_cube = cube #The my_cube is same as the cube method res = my_cube(5) print(res)
आउटपुट
125 125
अब हम देखेंगे कि फंक्शन्स को दूसरे फंक्शन्स के आर्ग्युमेंट के रूप में कैसे पास किया जा सकता है। यहाँ उदाहरण है।
उदाहरण कोड
def cube(x): return x*x*x defmy_map(method, argument_list): result = list() for item in argument_list: result.append(method(item)) return result my_list = my_map(cube, [1, 2, 3, 4, 5, 6, 7, 8]) #Pass the function as argument print(my_list)
आउटपुट
[1, 8, 27, 64, 125, 216, 343, 512]
यहाँ प्रथम श्रेणी के कार्यों की तीसरी संपत्ति है। इस मामले में हम एक फ़ंक्शन को दूसरे फ़ंक्शन से वापस कर देंगे।
उदाहरण कोड
defcreate_logger(message): deflog(): print('Log Message: ' + message) return log #Return a function my_logger = create_logger('Hello World') my_logger()
आउटपुट
Log Message: Hello World