dir() Function in Python – हालांकि हम विभिन्न Generic Sequence Operations को उपरोक्तानुसार तरीके से किसी String पर Apply कर सकते हैं, लेकिन कुछ String Methods केवल Strings पर ही Apply होते हैं, Sequences पर नहीं। उदाहरण के लिए len() जैसे Functions को किसी भी Sequence पर Apply कर सकते हैं, लेकिन upper(), lower(), जैसे Methods को केवल String Object के साथ ही Apply किया जा सकता है।
इसलिए किस Method को हम केवल String पर ही Apply कर सकते हैं, ये जानने के लिए हम उस Object के लिए dir() Function को Invoke कर सकते हैं। ये Function उन Variables की List Return करता है, जो Call करने वाले Object के Scope में तब Assigned होते हैं, जब उनमें कोई Parameter Pass नहीं किया गया होता।
अन्य शब्दों में कहें तो ये Method उन सभी Attributes की List Return करता है, जिसे इस dir() Function में Parameter की तरह Pass किया गया होता है और क्योंकि सभी Methods, Function के Attribute ही होते हैं, इसलिए String Object से सम्बंधित सभी Methods भी इस List में Display होते हैं।
इसे समझने के लिए हम निम्नानुसार एक Example Program Create कर सकते हैं, जिसमें एक String Object Create करके उसे dir() Function में Parameter की तरह Pass किया गया है, जिसके परिणामस्वरूप ये dir() Function हमें उस String Object के साथ Use किए जा सकने वाले सभी Attributes की List Output के रूप में Return करता है-
[code] FileName: dirFunction.py str = "MADAN MOHAN" print(dir(str)) Output ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isuppera', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] [/code]
इस प्रकार से हम किसी भी समय किसी Particular Object पर किन Methods को Use कर सकते हैं, इसका पता लगाने के लिए उपरोक्तानुसार dir() Function को Use करके Help प्राप्त कर सकते हैं।
इस Output में हम ढ़ेर सारे Double Underscore युक्त Attributes देख सकते हैं। ये Attributes हमारे लिए अभी किसी काम के नहीं हैं। इनके बारे में हम तब विस्तार से समझेंगे, जब हम Python OOPS पढ़ेंगे क्योंकि ये Python OOPS के Operator Overloading Concept को Represent करते समय Use होते हैं।
Double Underscore किसी String Object के Implementation को Represent करते हैं और Customization को Support करने के लिए उपलब्ध रहते हैं। उदाहरण के लिए वास्तव में String का __add__ Method ही String Concatenation Operation को Perform करता है। इसलिए जब हम Plus ( + ) Operator का प्रयोग करते हुए “KRISHNA” + “MURARI” Strings को Concatenate कर रहे होते हैं, तब हम वास्तव में Internally “KRISHNA”.__add__(“MURARI”) ही कर रहे होते हैं।
सामान्यत: Leading व Trailing Double Underscores, Python का वह Naming Pattern है जिसे Python, String की Implementation Details के लिए Use करता है। इसलिए जो इस dir() Function से Return होने वाली List में जो नाम बिना Underscores के होते हैं, वे Current String Object पर Direct Callable होते हैं। यानी उन Methods को Parameters के रूप में Pass किए गए String Object के लिए Directly Call किया जा सकता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Python in Hindi | Page: 602 | Format: PDF