কম্পিউটার টিউটোরিয়াল

পাইথনে বিল্ট-ইন অবজেক্ট (builtins)

builtins মডিউল পাইথন ইন্টারপ্রেটার যেকোনো সময় শুরু হলে অটোমেটিক্যালি লোড হয়, যেটি হয় টপ-লেভেল এক্সিকিউশন এনভায়রনমেন্ট বা ইন্টারেক্টিভ সেশন। Object ক্লাস, যা সকল পাইথন অবজেক্টের বেস ক্লাস, এই মডিউলে সংজ্ঞায়িত। সকল বিল্ট-ইন ডেটা টাইপ ক্লাস যেমন নাম্বর, স্ট্রিং, লিস্ট ইত্যাদি এই মডিউলে সংজ্ঞায়িত। BaseException ক্লাসসহ সকল বিল্ট-ইন এক্সসেপশনও এখানে সংজ্ঞায়িত। আরো, সকল বিল্ট-ইন ফাংশনও built-ins মডিউলে সংজ্ঞায়িত।

যেহেতু এই মডিউল বর্তমান সেশনে অটোমেটিক্যালি ইম্পোর্ট হয়, সাধারণত এটি স্পষ্টভাবে ইম্পোর্ট করা হয় না। এক্সিকিউটেবল কোডে ব্যবহৃত সকল বিল্ট-ইন ফাংশন ডিফল্টভাবে built-ins মডিউল থেকে মনে করা হয়। উদাহরণস্বরূপ:

>>> len('hello')
5

এটি নিচের সাথে ইমপ্লিসিটলি সমতুল্য:

>>> import builtins
>>> builtins.len('hello')
5

তবে, এই মডিউলটি স্পষ্টভাবে ইম্পোর্ট করা প্রয়োজন হয় যখন একটি ইউজার-ডিফাইনড ফাংশনও বিল্ট-ইন ফাংশনের মতো একই নাম রাখে। পাইথন ইন্টারপ্রেটার ইউজার-ডিফাইনড ফাংশনকে উচ্চতর প্রাধান্য দেয়। অতএব, যদি কোডে ইউজার-ডিফাইনড এবং বিল্ট-ইন ফাংশন একই নামে থাকে, তবে saunders must be prefixed with built-ins module.

def len(string):
    print('local len() function')
    print('calling len() function in builtins module')
    import builtins
    l = builtins.len(string)
    print('length:', l)

string = "Hello World"
len(string)

আউটপুট:

local len() function
calling len() function in builtins module
length: 11

অधিকাংশ মডিউল তাদের গ্লোবালসের অংশ হিসেবে __builtins__ নাম উপলব্ধ করে। __builtins__-এর মান সাধারণত হয় এই মডিউল অথবা এই মডিউলের __dict__ অ্যাট্রিবিউট।

>>> import math
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'math': }
  1. পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড

  2. পাইথন getpass মডিউল

  3. পাইথনে Timer অবজেক্ট (threading.Timer) ব্যবহার

  4. পাইথনে অনন্য অবজেক্ট অন্য মডিউলে অ্যাক্সেসIBLE করা (সিঙ্গলটন প্যাটার্ন)