当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.

模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

///

在cmd 中直接运行.py文件,则__name__的值是'__main__';

而在import 一个.py文件后,__name__的值就不是'__main__'了;

从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件

如:

#Test.py

class Test:

def __init(self):pass

def f(self):print 'Hello, World!'

if __name__ == '__main__':

Test().f()

#End

你在cmd中输入:

C:>python Test.py

Hello, World!

说明:"__name__ == '__main__'"是成立的

你再在cmd中输入:

C:>python

>>>import Test

>>>Test.__name__                #Test模块的__name__

'Test'

>>>__name__                       #当前程序的__name__

'__main__'

无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!

所以,下一行代码永远不会运行到!

//

转载于:https://blog.51cto.com/mannu/1693301

python-main相关推荐

  1. python main传参args,详解用Python处理Args的3种方法

    1. sys 模块 Python 中的 sys 模块具有 argv 功能.当通过终端触发 main.py 的执行时,此功能将返回提供给 main.py 的所有命令行参数的列表.除了其他参数之外,返回列 ...

  2. [ 7天学习Python编程,第一天]-----1.4 Python main函数:了解__main__【python舵手】

    PYTHON MAIN FUNCTION是任何程序的起点.当程序运行时,python解释器将顺序运行代码.仅当主函数作为Python程序运行时才执行.如果将其作为模块导入,它将不会运行main函数. ...

  3. python main函数返回值,Python main函数

    Python main函数 Python main函数教程 Python 中的 main() 函数只有当该 Python 脚本直接作为执行程序时才会执行,当该 Python 脚本被作为模块被导入时,其 ...

  4. pytorch之多GPU使用—— CUDA_VISIBLE_DEVICES=0,1 python main.py

    在输入命令行:可以直接指定 多卡训练: CUDA_VISIBLE_DEVICES=0,1 python main.py 其中0,1 代表 两个卡同时 单独写一个0 或者1 时候是指定单卡进行训练. 下 ...

  5. python main调试_在main.py中调试显示这个是什么问题

    在main.py中调试显示这个是什么问题 from scrapy.cmdline import execute import sys sys.path.append("E:\project\ ...

  6. python main函数

    关于Python的主(main)函数问题 2007-07-23 19:14 初次接触Python的人会很不习惯Python没有main主函数. 这里简单的介绍一下,在Python中使用main函数的方 ...

  7. python main.py是什么意思_什么是__main__.py?

    翻过高山走不出你 该__main__.py文件是什么?在创建Python模块时,通常使模块在main作为程序的入口点运行时执行某些功能(通常包含在函数中).这通常通过放置在大多数Python文件底部的 ...

  8. python main传参args_python argh / argparse:我如何传递一个列表作为命令行参数?

    python argh / argparse:我如何传递一个列表作为命令行参数? 我想使用argh库将参数列表传递给python脚本. 可以采取如下input的东西: ./my_script.py m ...

  9. python main传参args_python argh/argparse:如何将列表作为命令行参数传递?

    我试图使用argh库将参数列表传递给python脚本.可以接受如下输入的东西:./my_script.py my-func --argA blah --argB 1 2 3 4 ./my_script ...

  10. python程序一定要有主函数_Python 没有main函数的原因

    毫无疑问 Python 中没有所谓的 main 入口函数,但是网上经常看到一些文章提"Python 的 main 函数"."建议写 main 函数"-- 有些人 ...

最新文章

  1. 如何给女朋友解释什么是“元宇宙”?
  2. javascript基础——文字变大变小className的使用及JS浮动的兼容用法
  3. 防止代码变质的思考与方法
  4. 试编写一个将双向循环链表逆置的算法_循环双向链表在电路计算中的应用
  5. 105. Leetcode 121. 买卖股票的最佳时机 (动态规划-股票交易)
  6. 多进程与多线程的区别 - jihite
  7. Java StringBuffer与StringBuider
  8. SQLite多线程写锁文件解决方案
  9. [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析
  10. 红黑树 c++ 实现
  11. SSH婚庆策划系统案例
  12. Linux tar gzip压缩和解压
  13. 软件测试的工作内容主要是干什么?
  14. 计算机拼图形 比创意教案,图形联想与创意教案
  15. 获取b站某个up的视频aid、cid
  16. 手把手教你一小时设计基于matlab的信号发生器GUI界面(1)
  17. 2783: 魔法药水【二分】
  18. linux中跳板机的部署
  19. 为什么lol计算机内存不足怎么办,win7玩LOL英雄联盟提示“内存不足”怎么处理?(图文)...
  20. isee 处理图片的好工具

热门文章

  1. 第二次作业 讲解及展示
  2. 游戏服务器架构-设计模式之发布订阅模式
  3. ubuntu nginx配置负载均衡篇(一)
  4. MachineLearning(8)-PCA,LDA基础+sklearn 简单实践
  5. pySerial -- Python的串口通讯模块
  6. 《Python Cookbook 3rd》笔记(5.5):文件不存在才能写入
  7. guido python正式发布年份_Python语言适合哪些领域的计算问题? (1.3分)_学小易找答案...
  8. 嵌入式Linux多任务编程 进程 管道 命名管道
  9. 基于属性加密的ABE算法的应用场景思考展望
  10. 中科大 计算机网络12 Web和HTTP