কম্পিউটার

যদি __name__ ==__main__:পাইথনে কি করে?


যখন পাইথন ইন্টারপ্রেটার একটি সোর্স ফাইল পড়ে, তখন এটি এতে পাওয়া সমস্ত কোড কার্যকর করে।

কোডটি কার্যকর করার আগে, এটি কয়েকটি বিশেষ ভেরিয়েবলকে সংজ্ঞায়িত করবে। উদাহরণস্বরূপ, যদি পাইথন ইন্টারপ্রেটার সেই মডিউলটিকে (সোর্স ফাইল) প্রধান প্রোগ্রাম হিসাবে চালায়, তবে এটি একটি বিশেষ __name__ ভেরিয়েবলকে একটি মান "__main__" সেট করে। যদি এই ফাইলটি অন্য মডিউল থেকে আমদানি করা হয়, __name__ মডিউলের নামে সেট করা হবে৷

এটি করার একটি কারণ হল যে কখনও কখনও আপনি একটি মডিউল (একটি .py ফাইল) লেখেন যেখানে এটি সরাসরি চালানো যেতে পারে। বিকল্পভাবে, এটি আমদানি এবং অন্য মডিউলে ব্যবহার করা যেতে পারে। মূল চেক করার মাধ্যমে, আপনি সেই কোডটি শুধুমাত্র তখনই কার্যকর করতে পারেন যখন আপনি মডিউলটিকে একটি প্রোগ্রাম হিসাবে চালাতে চান এবং যখন কেউ শুধুমাত্র আপনার মডিউল আমদানি করতে চায় এবং আপনার ফাংশনগুলিকে কল করতে চায় তখন এটি কার্যকর করতে পারে না৷

উদাহরণস্বরূপ, যদি আপনার কাছে নিম্নলিখিত কোড সহ 2টি ফাইল one.py এবং two.py থাকে:

one.py:

def func():
    print("func() in one.py")
print("Root of one.py")
if __name__ == "__main__":
    print("one.py is being run directly")
else:
    print("one.py is being imported")

Two.py:

import one
print("Root of two.py")
one.func()
if __name__ == "__main__":
    print("two.py is being run directly")
else:
    print("two.py is being imported")

এখন আপনি যদি চালান,

$ python one.py

আপনি আউটপুট পাবেন:

Root of one.py
one.py is being run directly

কিন্তু আপনি যদি দৌড়ান,

$ python two.py

আপনি আউটপুট পাবেন:

Root of in one.py
one.py is being imported
Root of in two.py
func() in one.py
two.py is being run directly

  1. পাইথন ব্যবহার করে একটি ফাইল খোলা হলে 'U' মডিফায়ার কী করে?

  2. প্রিন্ট>> পাইথনে কি করে?

  3. পাইথনে স্ট্রিংগুলি % কি করে?

  4. পাইথনে আক্ষরিক স্ট্রিং এর সামনে 'বি' অক্ষরটি কী করে?