博客
关于我
python中为什么要有if __name__ == '__main__'?
阅读量:321 次
发布时间:2019-03-03

本文共 807 字,大约阅读时间需要 2 分钟。

if __name__ == '__main__' 是 Python 中一个常见的技术,用于控制模块或脚本的执行方式。它的作用是检测当前脚本是通过命令直接运行,还是作为其他脚本的模块被导入。在前者情况下,代码会执行;在后者情况下,由于 __name__ 不等于 '__main__',该语句的条件不满足,代码不会执行。

例如,在 a.py 中,如果你有以下代码:

def plus(a, b):    return a + bres = plus(1, 2)print(res)

当直接运行 a.py 时,__name__ 会被设置为 '__main__',因此代码会正常执行,输出 3

而在 b.py 中,你可以这样导入并使用 plus 函数:

from a import plusres = plus(2, 3)print(res)

在导入过程中,Python 会自动执行 a.py 中的代码,导致 res = plus(1, 2)print(res) 也会被执行,结果会是 3a5

为了避免这种情况,可以在 a.py 中添加 if __name__ == '__main__' 这一判断:

def plus(a, b):    return a + bif __name__ == '__main__':    res = plus(1, 2)    print(res)

这样,当 a.py 被直接运行时,__name__'__main__',代码正常执行;但当 a.py 被作为模块被导入(如在 b.py 中被导入)时,__name__ 不为 '__main__'if 语句的条件不成立,plus 函数不会被执行,避免了不必要的操作。

通过这种方式,可以确保模块被导入时不会执行其代码,只有在主程序运行时才执行。这种方法非常有用,特别是在开发可重用模块时,可以避免因导入操作触发副作用。

转载地址:http://bodq.baihongyu.com/

你可能感兴趣的文章
PHP 设置调试工具XDebug PHPStorm IDE
查看>>
php 身份证号检测
查看>>
PHP 输入输出流合集
查看>>
PHP 过滤器(Filter)
查看>>
php 运算符and or && || 的详解
查看>>
php 返回html字符串长度限制,记一次js中和php中的字符串长度计算截取的终极问题和完美...
查看>>
php 阿里云oss 上传回调
查看>>
PHP 面向对象 final类与final方法
查看>>
php+JQ+EasyUI自动加载数据
查看>>
php+sql server根据自增序号id区间查询第几条到第几条的数据
查看>>
php--------获取当前时间、时间戳
查看>>
Redis使用场景举例
查看>>
php--正则表达式
查看>>
php--防止sql注入的方法
查看>>
PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)
查看>>
php-cgi耗尽报502错误
查看>>
php-cgi(fpm-cgi) 进程 CPU 100% 与 file_get_content...
查看>>
PHP-DI/Invoker 开源项目使用教程
查看>>
php-fpm与Nginx运行常见错误说明
查看>>
php-fpm比php成为apache模块好在哪
查看>>