গ্লোবাল ফাংশনগুলির জন্য dir()
হ'ল কমান্ডটি (এই উত্তরগুলির বেশিরভাগ হিসাবে উল্লিখিত), তবে এটি উভয় জনসাধারণ এবং অ-পাবলিক ফাংশনকে এক সাথে তালিকাভুক্ত করে।
উদাহরণস্বরূপ চলমান:
>>> import re
>>> dir(re)
ফাংশন / ক্লাসগুলি প্রদান করে:
'__all__', '_MAXCACHE', '_alphanum_bytes', '_alphanum_str', '_pattern_type', '_pickle', '_subx'
যার কয়েকটি সাধারণত সাধারণ প্রোগ্রামিং ব্যবহারের জন্য বোঝানো হয় না (তবে মডিউল নিজেই, ডান্ডারএলিয়াসের মতো __doc__
, __file__
ect এর ক্ষেত্রে বাদে )। এই কারণে তাদের জনসাধারণের সাথে তালিকাভুক্ত করা কার্যকর নাও হতে পারে (ব্যবহার করার সময় পাইথন কী পেতে হবে তা জানে from module import *
)।
__all__
এই সমস্যা সমাধানের জন্য ব্যবহার করা যেতে পারে, এটি মডিউলে সমস্ত পাবলিক ফাংশন এবং ক্লাসগুলির একটি তালিকা ফেরত দেয় (যারা আন্ডারস্কোর দিয়ে শুরু করে না - _
)। দেখুন
ক্যান কেউ পাইথন মধ্যে __all__ ব্যাখ্যা? ব্যবহারের জন্য __all__
।
এখানে একটি উদাহরণ:
>>> import re
>>> re.__all__
['match', 'fullmatch', 'search', 'sub', 'subn', 'split', 'findall', 'finditer', 'compile', 'purge', 'template', 'escape', 'error', 'A', 'I', 'L', 'M', 'S', 'X', 'U', 'ASCII', 'IGNORECASE', 'LOCALE', 'MULTILINE', 'DOTALL', 'VERBOSE', 'UNICODE']
>>>
আন্ডারস্কোর সহ সমস্ত ক্রিয়াকলাপ এবং শ্রেণিগুলি সরানো হয়েছে, কেবলমাত্র সেগুলিকে পাবলিক হিসাবে সংজ্ঞায়িত করা হয়েছে এবং তাই এর মাধ্যমে ব্যবহার করা যেতে পারে import *
।
নোট যা __all__
সর্বদা সংজ্ঞায়িত হয় না। যদি এটি অন্তর্ভুক্ত না হয় তবে একটি AttributeError
উত্থাপিত হয়।
এর একটি ঘটনা অ্যাস্ট মডিউলটির সাথে রয়েছে:
>>> import ast
>>> ast.__all__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'ast' has no attribute '__all__'
>>>