قبل از اینکه بیشتر به برنامه نویسی پایتون بپردازیم ، با تابع Main (تابع اصلی) و اهمیت آن آشنا می شویم.
کد زیر را در نظر بگیرید:
def main():
print “hello world!”
print “Guru99”
در اینجا ما دو قطعه از چاپ را داریم که یکی در یک تابع اصلی تعریف شده است که “hello world” و دیگری مستقل است که “Guru99” را چاپ می کند. وقتی تابع ()main را اجرا می کنید :
- فقط “Guru99” چاپ می شود
- و از کد ” hello world” خبری نیست.
زیرا تابع فراخوانی”if__name __ ==” __main__ را اعلام نکردیم.
- هنگامی که مترجم پایتون یک سورس فایل را بخواند ، تمام کدهای موجود در آن را اجرا می کند.
- وقتی پایتون ” source file” را به عنوان برنامه اصلی اجرا می کند ، متغیر ویژه (__name__) را برای داشتن یک مقدار (“__main__”) تعیین می کند.
- هنگامی که شما تابع main را اجرا می کنید ، آنگاه عبارت “if” را می خواند و بررسی می کند که آیا __name__ برابر است با __main__ یا نه.
- در پایتون “if__name __ ==” __main__ به شما امکان می دهد فایل های پایتون را به صورت ماژول های قابل استفاده مجدد یا برنامه های مستقل اجرا کنید.
مانند C ، پایتون از == برای مقایسه while = for استفاده می کند. مترجم پایتون از دو روش تابع main را استفاده می کند
- import: نام فایل ماژول = __name__
false statement== if و اسکریپت در __main__ اجرا نمی شود
- اجرای مستقیم: __ main __ =__ name __
اگر true == statement if و اسکریپت در _main___ اجرا می شود
- بنابراین وقتی کد اجرا شد ، نام ماژول را با “if” بررسی می کند.
مهم است که بعد از تعریف تابع main (تابع اصلی)، کد را با if__name __ == “__main__” فراخوانی کنید و سپس آن را اجرا کنید ، فقط در این صورت خروجی “hello world” را در کنسول برنامه نویسی مطابق شکل زیر دریافت خواهید کرد.
توجه: اطمینان حاصل کنید که پس از تعریف تابع main ، تورفتگی ایجاد کرده و کد را درست در زیر def main() تعریف نمی کنید. در غیر این صورت خطای تورفتگی رخ می دهد.
def main():
print(“Hello World!”)
if __name__== “__main__”:
main()
print(“Guru99”)
در بالا نمونه کدهای پایتون ۳ هستند ، اگر می خواهید از پایتون ۲ استفاده کنید ، لطفا کد زیر را در نظر بگیرید
def main():
print “Hello World!”
if __name__== “__main__”:
main()
print “Guru99”
در پایتون ۳ ، نیازی به استفاده از if__name ندارید. کد زیر نیز کار می کند
def main():
print(“Hello World!”)
main()
print(“Guru99”)