zoukankan      html  css  js  c++  java
  • Python中的if __name__ == "__main__" 与C语言中的main( )的区别

    1 PI = 3.14
    2 
    3 def main():
    4     print("PI:", PI)
    5     
    6 if __name__=="__main__":    #:当此.py文件被直接运行,此行下的代码块被运行,当.py文件以模块包的形式被调用或导入时,则此行下的代码块不被运行(方便作为包调用执行,比如你只想调用其中一个参数)
    7     main()
    8 
    9 # 运行结果:PI: 3.14

     首先明确一点, 任何语言都需要一个执行顺序

    1. python是 从第一行开始,逐行执行

    2. C语言是 从main( )下面逐行执行

    python中 if __name__=="__main__" 是一种模块执行策略

    和C语言中main函数作为程序执行入口(运行一个程序总要告诉我从哪里开始吧??), 之所以是main( ) 是因为链接器的实现(分配销毁策略)里用的是main,直接涉及到下游的执行入口.

    1、python的模块文件有两种执行方式

      1.直接作为脚本执行

      2.被导入(import)到其他的模块文件中被间接执行。

    2、执行的原理

    每个python模块都包含内置的变量__name__,

    当模块被直接执行的时候,__name__等于文件名__name__ == 'main’();

    如果被import到其他模块中被间接执行,则__name__  == " package_*.module_name ",即当模块被间接执行时,if __name__ == '__main__’下的代码不会被执行。

  • 相关阅读:
    4.iptables 网络防火墙
    iterator not dereferencable问题
    秒杀多线程系列中的题目
    说说僵尸和孤儿进程的那点儿事
    Linux的fork()写时复制原则(转)
    linux进程原语之fork()
    linux--多进程进行文件拷贝
    哈夫曼树与哈夫曼编码
    csp公共钥匙盒
    字典树
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725357.html
Copyright © 2011-2022 走看看