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'>
这里主要的含义是什么?
与if __name__="__main__"
中的含义相同?
答案 0 :(得分:3)
RoundFloat
是__main__
(正在运行的文件)的属性,因此'__main__.RoundFloat'
。如果该类来自导入的模块,则__main__
将替换为模块名称。
if __name__ == '__main__'
的目的是检查模块是否是顶级脚本,如果是,则执行一段代码。如果正在导入,那么代码块将不会执行,因为__name__
将是模块的名称。
答案 1 :(得分:1)
__main__
是一个顶级脚本环境 - 它是执行脚本的内置模块。
请参阅reference
答案 2 :(得分:1)
这是您运行的顶级脚本的名称。它不是作为模块导入的。如果您的代码是作为模块导入的,那么该部分将被模块名称替换。属性__name__
是模块名称。顶级脚本的名称为__main__
。
答案 3 :(得分:1)
您在主序列中运行RoundFloat
,因为它不属于任何其他类。
如果您将RoundFloat
课程放在另一个课程中,您可能会获得SomeOtherClass.RoundFloat
或main.SomeOtherClass.RoundFloat
。
(我不确定“主序”是否是正确的Python术语,但希望你能理解我的意思。)