Python is Powerful Scripting Language – Python एक Hybrid Language है जिसकी वजह से इसके Toolsets इसे Traditional Scripting Languages (Tcl, Scheme, Perl) व System Development Languages (C, C++, Java) के कहीं बीच में Place कर देते हैं।
परिणामस्वरूप Python, किसी Scripting Language द्वारा Provide की जाने वाली Simplicity व Ease of Use वाले सारे Features तो Provide करता ही है लेकिन साथ ही वे Features व Tools भी Provide करता है, जो कि Advanced Software Development के लिए जरूरी Compiled Languages में ही उपलब्ध होते हैं। जिसकी वजह से Python को Large-Scale Development Projects के लिए भी उसी तरह से Use किया जा सकता है, जिस तरह से C/C++, Java जैसी Languages को Use किया जाता है।
चलिए, हम Python द्वारा Provide किए जाने वाले कुछ Developer Specific Extra-Ordinary Features को थोड़ा विस्तार से समझते हैं।
Dynamically Typed
Python, C/C++, Java, C# की तरह एक Strictly Typed Programming Language नहीं है, बल्कि PHP, JavaScript की तरह एक Dynamically Typed Scripting Language है। इसीलिए Python Program Create करते समय हम किस तरह की Value के साथ काम कर रहे हैं और उस Value को किस तरह के Objects द्वारा Handle किया जाना है, इस बात का ध्यान Program Run करते समय Python Interpret द्वारा स्वयं ही रख लिया जाता है।
अन्य शब्दों में कहें तो Python में Variable या Type Declare करने जैसा कोई Concept ही नहीं है क्योंकि Python में Data Types जैसा कुछ होता ही नहीं है। जो भी कुछ होता है, वो Object होता है और हर मान किसी न किसी तरह के Object द्वारा ही Represent होता है क्योंकि Python को मूलत: Object Oriented Concepts को ध्यान में रखते हुए ही Develop किया गया है और Object Oriented Programming में सबकुछ एक Object होता है।
Automatic Dynamic Memory Management
हम Python में जब भी किसी मान को Use करने के लिए Specify करते हैं, Python Interpreter स्वयं ही उस मान से सम्बंधित Object के लिए Appropriate Memory Allocate कर देता है, और जब भी उस Object की जरूरत नहीं रह जाती, Python Interpreter उस Object द्वारा Reserved Memory Space को Release कर देता है, जिसे Automatic Garbage Collection के नाम से जाना जाता है।
इतना ही नहीं, किसी Object के लिए जितना Space Allocate किया गया है, यदि उस Object द्वारा और ज्यादा Data को Store करने की जरूरत पड़े, तो Python Interpreter स्वयं ही उस Object के लिए जरूरत के अनुसार Memory को बढ़ाकर Object को Expand भी देता है और यदि Object में से कुछ Data को Remove कर दिए जाने की वजह से कुछ Space Free हो गया हो, तो उस Object के लिए Reserved उस अनावश्यक Space को Free करके Object को Shrink भी कर दिया जाता है।
Automatic Memory Allocation व Garbage Collection की ये सुविधा Modern Programming Language जैसे कि Java, C# आदि में उपलब्ध एक बहुत ही विशिष्ट प्रकार की सुविधा है जो हमें C/C++ जैसी Lower Level Languages में उपलब्ध नहीं होती हैं। परिणामस्वरूप सामान्यत: C/C++ में Memory Management का काम हमें हमारी जरूरत के अनुसार Manually करना पड़ता है और निश्चित रूप ये बहुत Complex व Buggy काम होता है।
लेकिन क्योंकि Python, C/C++ के समकक्ष ही Lower Level Memory Details को Track व Manage कर सकता है, इसलिए ये हमारे लिए Memory Management का काम भी स्वयं ही Perform कर देता है, जिसके लिए हमें अलग से कुछ नहीं करना पड़ता।
Built-In Support for Large-Scale Application Development
जब हम Python का प्रयोग करते हुए Large Applications Develop करना चाहते हैं, तब हमें कुछ Special Tools की जरूरत पड़ती है, ताकि हम हमारे Large Application को Multi-Developer Environment में Develop कर सकें। Python एक Large Application Develop करने से सम्बंधित सभी जरूरी Tools जैसे कि Modules, Classes, Exceptions आदि Provide करता है जिनके माध्यम से हम हमारे Large Application को-
- छोटे-छोटे Components के रूप में Organize कर पाते हैं।
- OOPS का प्रयोग करते हुए Reusable Codes Develop कर पाते हैं।
- जरूरत के अनुसार उन OOPS आधारित Classes को Inherit करके Customize भी कर पाते हैं।
- Application से सम्बंधित विभिन्न प्रकार के Events को Handle कर पाते हैं और
- अपने Application से सम्बंधित विभिन्न प्रकार की Errors, Exception व Bugs को आसानी से Handle व Manage कर पाते हैं।
OOPS के के साथ ही Python हमें Procedural व Functional Programming करने की भी सुविधा प्रदान करता है, जिनकी वजह से हम हमारे Large Application में जरूरत पड़ने पर OOPS के साथ ही Python द्वारा Provide किए जाने वाले Procedural व Functional Programming Tools का भी Mixed तरीके से भी प्रयोग कर सकते हैं और किसी Specific प्रकार की समस्या का समाधान Develop कर सकते हैं।
Built-In Data-Structure Object Types
Python कई Common रूप से Use किए जाने वाले List, Dictionary व String जैसे Data-Structures Built-In रूप से Support करता है, जो कि बहुत ही Flexible व Easy to Use होते हैं और हम अपनी ज्यादातर जरूरतों को पूरा करने के लिए आसानी से इनका प्रयोग कर सकते हैं।
ये Built-In रूप से Supported Data Structures इतने Well Optimized हैं कि उतना ही Memory Use करते हैं, जितने कि Currently पर जरूरत होती है और उतने ही समय के लिए Reserve करते हैं जितने की Current Time पर जरूरत होती है। यानी ये Data Structures, जरूरत के अनुसार Automatically Grow व Shrink होते रहते हैं, जिसके लिए हमें अलग से कुछ भी नहीं करना पड़ता।
उदाहरण के लिए यदि किसी List में 10 Data Stored हैं और हम किसी एक Data को Delete कर दें, तो तुरन्त ही Python केवल 9 Data के लिए ही Memory Space Reserved रखेगा और 1 Delete कर दिए गए Data के लिए Reserved Memory Space को तुरन्त Release कर देगा। जबकि यदि हम उसी List में एक और नया Data Add कर दें, तो List Automatically केवल एक और नए Data के लिए Memory Reserve कर लेगा। जबकि Memory Management से सम्बंधित ये सारी प्रक्रिया Dynamically अपने आप Internally Perform होती रहेगी, जिसके लिए हमें अलग से कुछ भी नहीं करना होगा।
Python द्वारा Provided सभी Built-In Data Structures इतने Flexible होते हैं, कि हम इन्हें अपनी जरूरत के अनुसार जैसे चाहें वैसे Nest कर सकते हैं यानी एक Data Structure के अन्दर दूसरे Data Structure को Embed कर सकते हैं और किसी Complex Data को भी आसानी से Represent कर सकते हैं।
Data-Structure Object Types Built-In Access and Manipulation Support
Python हमें जितने भी Built-In Object Types (List, Dictionary, String, etc…) Provide करता है, उन पर जितने भी तरह के Standard Operations Perform किए जा सकते हैं, उन सभी Operations को Perform करने से सम्बंधित सभी जरूरी तरीके भी Provide करता है।
उदाहरण के लिए हम इन Objects को Concatenate कर सकते हैं, इनकी Slicing कर सकते हैं, इनकी Sorting कर सकते हैं, इनकी Mapping कर सकते हैं और इन सभी Standard Tasks को Accomplish करने के लिए हमें अलग से कोई Code Create नहीं करना होता, बल्कि Python इन सभी कामों को Perform करने से सम्बंधित Functionalities हमें Built-In Functions के रूप में Provide कर देता है।
Standard Core-Libraries Support
जब हमें और भी Specific तरह के Task Perform करने होते हैं, तो उन Tasks को Perform करने के लिए Python हमें Precoded Standard Library Tools का एक Large Collection भी Provide करता है, जो कि Regular Expression Matching से लेकर Networking तक की सभी जरूरतों को आसानी पूरा करने में सहायक होता है।
जब एक बार हम Python Language को ठीक से समझ लेते हैं, उसके बाद हमें अपने Application Level की विभिन्न प्रकार की जरूरतों को पूरा करने के लिए केवल Python की Core Libraries व Third-Party द्वारा Provide की जाने वाली External Libraries को ही अपनी जरूरत के अनुसार समझना व Use करना होता है।
Third-Party External Libraries Support
चूंकि Python एक Open Source Language है, इसलिए Python Developers केवल Python की Core-Library तक ही सीमित नहीं रह सकते बल्कि उन्हें Precoded Third-Party Libraries को भी अपनी जरूरत के अनुसार समझना व उपयोग में लेना सीखना होता है। क्योंकि Python Core Library में हालांकि बहुत कुछ है, लेकिन Core Library द्वारा हम सभी तरह की जरूरतें पूरी नहीं कर सकते।
उदाहरण के लिए Python, Web Applications Develop करने के लिए CGI Support के अलावा Directly कोई Library Support Provide नहीं करता और वर्तमान समय में हम CGI Support पर आधारित Web Applications Develop नहीं कर सकते। इसलिए इस तरह के Web Applications Develop करने के लिए हमें Flask, Django जैसी Third-Party Web Application Development Framework का प्रयोग करना जरूरी हो जाता है।
इसी तरह से COM Support, Imaging, Numeric Programming, XML, Database Access आदि विभिन्न प्रकार की जरूरतों को पूरा करने के लिए हमें विभिन्न प्रकार की Third-Party Python Library का प्रयोग करना जरूरी हो जाता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Python in Hindi | Page: 602 | Format: PDF