码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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语句下面即可,这就是这个语句存在的意义。

  • 相关阅读:
    在liunx下读取串口的数据
    浮动IP、IP、动态IP、静态IP等各类IP之区别
    设计模式--访问者模式(Visitor Pattern)
    低代码平台选型6大能力:品牌/产品/技术/服务/安全/价值
    postgres源码解析41 btree索引文件的创建--1
    Spring Cloud Alibaba Nacos路由策略之保护阈值!
    基于Rust的Tile-Based游戏开发杂记(02)ggez绘图实操
    IDEA类和方法注释模板设置
    wordpress获取当前主题文件夹所在的路径
    【深度学习目标检测】二十一、基于深度学习的葡萄检测系统-含数据集、GUI和源码(python,yolov8)
  • 原文地址:https://blog.csdn.net/weixin_39475996/article/details/133916364
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号