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__"
ですか?
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__"
ですか?
RoundFloat
__main__
は(実行中のファイル)の属性であるため、 '__main__.RoundFloat'
. クラスがインポートされたモジュールからのものである場合、__main__
モジュール名に置き換えられます。
の目的はif __name__ == '__main__'
、モジュールが最上位のスクリプトかどうかを確認し、最上位のスクリプトである場合はコード ブロックを実行することです。__name__
インポートされていた場合、代わりにモジュールの名前になるため、そのコードブロックは実行されません。
__main__
トップレベルのスクリプト環境です。スクリプトが実行される組み込みモジュールです。
リファレンスを見る
これは、実行する最上位スクリプトの名前です。モジュールとしてインポートされませんでした。コードがモジュールとしてインポートされた場合、その部分はモジュール名に置き換えられます。属性__name__
はモジュール名です。最上位スクリプトの名前は__main__
.
RoundFloat
他のクラスに属していないため、メイン シーケンスで実行しています。
RoundFloat
クラスを別のクラス内に配置すると、おそらく または のいずれSomeOtherClass.RoundFloat
かになりますmain.SomeOtherClass.RoundFloat
。
(「メイン シーケンス」が適切な Python 用語かどうかはわかりませんが、私の言いたいことを理解していただければ幸いです。)