这里的__main__是什么意思?

2 投票
4 回答
629 浏览
提问于 2025-04-17 14:32
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__

撰写回答