这里的__main__是什么意思?
class RoundFloat(float):
def __new__(cls,val):
x=float.__new__(cls,round(val,2))
print x, type(x)
>>>RoundFloat(1.785)
1.78 <class '__main__.RoundFloat'>
这里的 main 是什么意思呢?
它和 if __name__="__main__"
中的意思一样吗?
4 个回答
1
这就是你运行的最上层脚本的名字。它并不是作为一个模块被导入的。如果你的代码是作为模块被导入的,那么那部分就会被模块的名字替代。属性 __name__
就是模块的名字。最上层的脚本名字是 __main__
。
1
__main__
是一个顶层脚本环境——它是一个内置模块,用来执行脚本的地方。
可以查看这个参考资料
3
RoundFloat
是 __main__
的一个属性,__main__
指的是正在运行的文件,所以我们可以说是 '__main__.RoundFloat'
。如果这个类是从一个导入的模块里来的,__main__
就会被那个模块的名字替代。
if __name__ == '__main__'
的作用是检查这个模块是否是最顶层的脚本。如果是的话,就执行一段代码。如果这个模块是被导入的,那么那段代码就不会执行,因为这时 __name__
会是模块的名字,而不是 __main__
。