• Python中if __name__ == ‘__main__‘


    1. 在Python中,凡是以两个下划线开头,两个下划线结尾的变量叫做“魔法变量”。瓦特?魔法变量?对,你没有听错,就是魔法变量。所谓魔法变量就是Python对象内置天生就有的属性变量,你使用这些变量前不需要自己去定义,直接用就是。当然,既然是天生就有的,你也别去修改它,正常使用就好。
    2. Python中每个py文件都叫一个模块。系统里面我们经常导入的模块,比如什么os啊,math啊,这些它们的本质都是一个个的py文件。我们自己写的每个py文件也都是一个个的模块,咱们可以把它看成是一个自定义模块。模块既然就是Python文件,那么它就有两种运行方式:一种是直接运行,另外一种是导入别的模块中再运行。

    3.__name__这个魔术变量存在于Python的每个模块对象中,也就是说,按照我们上面的说法,每个py文件都有一个__name__属性。

    创建项目   自动产生main.py, 该文件中写一句代码

    打印结果

    在建两个文件,分别是demo.py, study.py    ,两个文件中分别只写一句代码:

    在main.py中import demo    ,import study 

    运行main.py,输出结果为:

    说明两点:首先,当模块A被导入到模块B中时,一旦运行模块B,模块A中的语句会自动被执行一遍,以便加载模块A中的所有函数定义啊、类定义等语句到内存中等待被使用。所以,正是基于这个行为,运行main.py这个文件时,其实就相当于自动运行了一次demo.py和study.py。第二点,当模块是以“被导入”的方式运行时,它的__name__属性会自动变成该模块的名字,这就是为什么运行main.py打印出来的是“demo”和“study”而不是“__main__”的原因。

    定义一个模块时会写if __name__ == "__main__": 这个语句了,这个if语句的条件只有当这个模块被直接运行时才会满足,当这个模块被导入别的模块时是不会被满足的。所以,凡是想让某些代码只在直接执行当前模块时运行,就把这些代码放到这个if语句下面即可,这就是这个语句存在的意义。

  • 相关阅读:
    AtCoder abc137
    从js和json中引入数据的区别
    从Google Play下载APK到电脑的三种办法测试
    Lwip之PPP、PPPoE实现(一)
    如何实现云上 Lakehouse 高性能
    关键词搜索-关键词搜索引擎工具-关键词搜索排行榜
    S32K324芯片学习笔记-实时控制系统-ADC
    2024年孝感市建筑类中级职称申报资料私企VS国企
    外卖项目(SpringBoot)--- 项目功能演示
    一种基于Prompt的通用信息抽取(UIE)框架
  • 原文地址:https://blog.csdn.net/weixin_39475996/article/details/133916364