if __name__ == '__main__' :
وقتی ما یک فایل پایتون باز میکنیم و اجرا میکنیم پایتون آن فایل رو به شکل __main__ با تایپ استرینگ میشناسه و یک attribute (صفت) __name__ میده
ما وقتی __name __ را print بگیریم __main__ چاپ میشه
ما وقتی ماژول مینویسم در پایتون و آن رو در یک فایل دیگر امپورت میکنیم به صورت مستقیم در ان صورت کل کد های آن ماژول execute می شود و همه آن یعنی اجراء میشود
وقتی ما ماژولی را import میکنیم پایتون آن فایل رو به اسم خودش میشناسه یعنی ما دو تا فایل داریم به اسم person.py , man.py داریم و در فایل person.py فایل man.py را import میکنیم در این صورت فایل person.py را پایتون به اسم __main__ میشناسه و فایل man.py را به اسم man میشناسه
ما بعضی کد هایی داریم که میخواهیم فقط در زمانی اجراء شود که فقط ان فایل رو اجراء می کنیم اجرا شود چون وقتی ما یک فایلی رو import می کنیم ان فایل رو به اسم خودش میشناسه در آن فایل وقتی مینویسیم
if __name__ == '__main__ :
کد هایی که زیر if قرار میگیره اجراء نمی شود چون __name__ == __main__ مساوی نمی شود اسم خود فایل مساوی با __name__ میشود شرط if برقرار نمی شود چون مساوی __main__ گذاشتیم کد ها اجراء نمی شود فقط در زمانی این if برقرار می شود که ان فایل رو به صورت مستقیم run کنیم تا
__name__ == '__main__'
شود