مشخصات مقاله
-
0.0
-
1736
-
0
-
0
تابع main در پایتون
در این آموزش، در مورد تابع main() در زبان برنامهنویسی پایتون خواهیم آموخت. همچنین توانایی استفاده از ویژگی __name__ در برنامههای پایتون را به منظور اجرای دینامیک آن در متنوعترین حالات نیز متوجه خواهیم شد.
بیایید با درک اینکه تابع main() در پایتون چیست، شروع کنیم.
درک تابع main() در پایتون
تابع main() در بسیاری از زبانهای برنامهنویسی به عنوان نقطه اجرا برای یک فایل برنامه در نظر گرفته میشود و به عنوان نقطه شروع برنامه اجرا معرفی میشود. با این حال، مفسر زبان برنامهنویسی پایتون هر یک از خطوط را به ترتیب از بالا به پایین از فایل اجرا میکند و هیچ تابع main() صریحی ندارد.
پایتون تعاریف دیگری را برای تعیین نقطه اجرا فراهم میکند. یکی از آنها استفاده از تابع main() به همراه ویژگی __name__ یک فایل پایتون است.
حالا بیایید ویژگی __name__ را در زبان برنامهنویسی پایتون بیشتر بفهمیم.
درک ویژگی __name__ در پایتون
ویژگی __name__ یک متغیر مهم در پایتون است که نام ماژول فعلی را نشان میدهد. این ویژگی مقادیر مختلفی را بر اساس مکان اجرای فایل پایتون نمایش میدهد. برای درک بهتر ویژگی __name__، یک مثال را در نظر بگیریم.
اجرای فایل پایتون به عنوان یک اسکریپت
بیایید فرض کنیم که یک فایل پایتون به نام myworld.py داریم که محتوای زیر را دارد:
print(__name__)خروجی
$ python myworld.py __main__
در فایل بالا، ما مقدار ویژگی __name__ را چاپ کردهایم. به عبارت دیگر، مقدار متغیر __name__ به __main__ تنظیم شده است.
اجرای فایل پایتون به عنوان یک ماژول
ما همچنین میتوانیم یک فایل پایتون را به عنوان یک ماژول اجرا کنیم. برای انجام این کار، باید فایل مورد نیاز را در یک برنامه پایتون دیگر وارد کنیم. بیایید با مثال زیر مفهوم را به درستی درک کنیم.
فرض کنید که ما یک فایل پایتون به نام python_main.py در همان دایرکتوری فایل myworld.py ایجاد کردهایم با محتوای زیر:
import myworldخروجی
$ python python_main.py myworld
در فایل بالا، ما یک ماژول به نام myworld، import کردهایم. به عبارت دیگر، هنگام اجرای فایل python_main.py، برنامه کد کامل موجود در فایل ماژول را اجرا میکند. با این حال، ما میبینیم که به جای نمایش __main__. نام ماژول، یعنی myworld نمایش داده میشود.
دلیل این اتفاق این است که در اجرای یک فایل پایتون به عنوان یک ماژول، نام ماژول خود به متغیر __name__ اختصاص داده میشود.
استفاده از دستور if با متغیر __name__
مثال
def main():
print("This is my Python program.")
if __name__ == "__main__":
main()
خروجی
$ python myworld.py This is my Python program.
در کد بالا، ما یک تابع به نام main() تعریف کردهایم تا چند رشته برای کاربران چاپ کند. سپس از شرط if استفاده کردهایم تا بررسی کنیم که آیا مقدار متغیر __name__ برابر با __main__ است، در این صورت تابع main() اجرا میشود. به عبارت دیگر، هنگامی که فایل myworld.py را اجرا میکنیم، پیام رشته به کاربر چاپ میشود.
اما هنگام اجرای فایل به عنوان یک ماژول با وارد کردن آن در فایل python_main.py، برنامه هیچ خروجی نمیدهد زیرا تابع main() فراخوانی نمیشود. بنابراین، میتوانیم نتیجه بگیریم که تابع main() ای که در فایل myworld.py تعریف کردهایم، تنها به عنوان یک اسکریپت مستقل و نه به عنوان یک ماژول وارد شده، اجرا میشود.
این روش استانداردی برای صریح تعریف کردن تابع main() در پایتون است. این یکی از موردهای محبوب استفاده از ویژگی __name__ یک فایل پایتون است.