আমি পাইথনে নতুন, সুতরাং এটি সম্ভবত একটি সহজ স্কোপিং প্রশ্ন। পাইথন ফাইলের (মডিউল) নীচের কোডগুলি আমাকে কিছুটা বিভ্রান্ত করছে:
if __name__ == '__main__':
x = 1
print x
যে ভাষাগুলিতে আমি কাজ করেছি সেগুলিতে এই কোডটি একটি ব্যতিক্রম ছুঁড়ে ফেলবে, কারণ x
ভেরিয়েবলটি if
বিবৃতিতে স্থানীয় এবং এর বাইরে থাকা উচিত নয়। তবে এই কোডটি কার্যকর করে এবং প্রিন্ট করে 1.. কেউ কি এই আচরণটি ব্যাখ্যা করতে পারে? সমস্ত পরিবর্তনশীল একটি মডিউল গ্লোবাল / সম্পূর্ণ মডিউল উপলব্ধ উপলব্ধ?
if
সত্য (অর্থাত, বিবৃতিতে উপরে না রাখা__name__
হয় না'__main__'
যখন আপনি এটি টপ লেভেল নির্বাহ পরিবর্তে মডিউল আমদানি উদাহরণস্বরূপ,), তারপরx
কখনো আবদ্ধ হয়েছে হবে, এবং পরবর্তীprint x
বিবৃতি একটি নিক্ষেপ করা হবেNameError: name 'x' is not defined
।