鱼C论坛

 找回密码
 立即注册
查看: 2448|回复: 4

[已解决]一个语句if __name__='__main__':的理解求助

[复制链接]
发表于 2016-3-17 16:41:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 doudou_freefish 于 2016-3-17 16:52 编辑

import re
import string

def main():
        file=open("ref3.fa",'r')
        gcCount=0
        totalBaseCount=0
        for line in file:
                line=line.strip("\n")
                if not line.startswith(">"):
                        gcCount+=len(re.findall("[GC]",line))
                        totalBaseCount+=len(re.findall("[GCAT]",line))
        gcFraction=float(gcCount)/totalBaseCount
        print(goFraction)
if __name__='__main__':
        main()

想请问后面这个if __name__,这个指的是什么意思?
最佳答案
2016-3-17 20:56:29
本帖最后由 小小大鱼 于 2016-3-17 20:58 编辑

假设你将此文件保存为'test.py'
那么这个test.py就可以称为一个模块。
所有的模块都有一个内置属性 __name__,一个模块的 __name__ 的值取决于您如何应用模块。
如果 import 一个模块'test',那么模块__name__ 的值通常为模块文件名'test'。
但是,当你直接运行test.py,在这 种情况下, __name__ 的值将是默认值"__main__"条件成立,
执行后面的代码。

结果就是:
1:你在命令行下输入:python test.py
此时: __name__ == '__main__'

2:import test,此时 test.__name__ == 'test'
作用就是判断你是否是在直接运行程序,比如你在 test2.py 中import test, 此时并不会运行test.py,而只是引入test中的相关对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-17 17:19:33 | 显示全部楼层
当此程序做为主程序运行时执行后面的代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-17 20:56:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 小小大鱼 于 2016-3-17 20:58 编辑

假设你将此文件保存为'test.py'
那么这个test.py就可以称为一个模块。
所有的模块都有一个内置属性 __name__,一个模块的 __name__ 的值取决于您如何应用模块。
如果 import 一个模块'test',那么模块__name__ 的值通常为模块文件名'test'。
但是,当你直接运行test.py,在这 种情况下, __name__ 的值将是默认值"__main__"条件成立,
执行后面的代码。

结果就是:
1:你在命令行下输入:python test.py
此时: __name__ == '__main__'

2:import test,此时 test.__name__ == 'test'
作用就是判断你是否是在直接运行程序,比如你在 test2.py 中import test, 此时并不会运行test.py,而只是引入test中的相关对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2016-12-7 13:03:58 | 显示全部楼层
小小大鱼 发表于 2016-3-17 20:56
假设你将此文件保存为'test.py'
那么这个test.py就可以称为一个模块。
所有的模块都有一个内置属性 __nam ...

你大爷的,百度了半天,终于看到让我秒懂的解释了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 16:09:58 | 显示全部楼层
小小大鱼 发表于 2016-3-17 20:56
假设你将此文件保存为'test.py'
那么这个test.py就可以称为一个模块。
所有的模块都有一个内置属性 __nam ...

查了半天  终于懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表