یکشنبه ۳۱ فروردین ۹۹ | ۱۷:۱۶ ۳۵ بازديد
كد زير را در نظر بگيريد:
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” را در كنسول برنامه نويسي مطابق شكل زير دريافت خواهيد كرد.