Python3中if __name__ == '__main__'深度解析

Python中__name__ 的使用:

__name__ 是一个系统变量(前后加了双下划线为系统变量,普通变量不能如此命名)

1、如果当前模块为主模块(即调用其他模块的模块),那么此模块名字即为'__main__'

2、如果当前模块被import,那么此模块名字即为文件名字(不加后边的.py)

 

Python中执行if __name__ == '__main__':实例

#tst1.py

print("tst1 name:", __name__)

if __name__ == '__main__':
	print('tst1 run as main!')
#tst2.py

import tst1

print('tst2 name:', __name__)
tst1
print('tst2 run as main!')

1、执行tst1.py结果

tst1 name: __main__
tst1 run as main!
[Finished in 0.0s]

直接作为脚本执行,__name__即为'__main__'

2、执行tst2.py结果

tst1 name: tst1
tst2 name: __main__
tst2 run as main!
[Finished in 0.0s]

tst1被作为模块import,此时tst1.py中__name__即为'tst1',tst2中__name__即为'__main__'

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
这段代码是一个常见的Python编程习惯,用于判断当前脚本是否作为主程序运行。 `if __name__ == "__main__":`表示如果当前脚本是作为主程序运行的,则执行其下缩进的代码块。 `torch.backends.cudnn.benchmark = True`是PyTorch的设置,用于启用CuDNN的自动调优机制,以提升深度学习模型在GPU上的计算性能。 接下来,使用`docopt`库解析命令行参数,并将解析结果存储在`cli_args`变量。`__doc__`表示当前脚本的文档字符串,`--config`是一个命令行选项,表示配置文件的路径。 然后,使用`Path`类创建一个表示配置文件路径的`config_file`对象。`config_file.open()`打开配置文件,并使用`yaml.load()`函数将配置文件的内容加载为Python对象。`Loader=yaml.SafeLoader`指定了加载器,用于安全地加载配置文件,避免潜在的安全问题。 接着,根据配置文件的模型信息获取模型类。`config['model']`表示配置文件的模型名称,而`get_model()`函数用于根据模型名称获取对应的模型类。 最后,使用获取到的模型类和配置文件的模型参数创建模型对象。`modelclass(**config['model_args'])`使用关键字参数方式传递模型参数,并实例化一个模型对象。 这段代码的作用是在当前脚本作为主程序运行时,设置CuDNN的自动调优机制,解析命令行参数,并根据配置文件加载模型类和模型参数,创建一个模型对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值