2
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__"ですか?

4

4 に答える 4

3

RoundFloat__main__は(実行中のファイル)の属性であるため、 '__main__.RoundFloat'. クラスがインポートされたモジュールからのものである場合、__main__モジュール名に置き換えられます。

の目的はif __name__ == '__main__'、モジュールが最上位のスクリプトかどうかを確認し、最上位のスクリプトである場合はコード ブロックを実行することです。__name__インポートされていた場合、代わりにモジュールの名前になるため、そのコードブロックは実行されません。

于 2013-02-02T11:53:52.030 に答える
1

__main__トップレベルのスクリプト環境です。スクリプトが実行される組み込みモジュールです。

リファレンスを見る

于 2013-02-02T11:54:03.270 に答える
1

これは、実行する最上位スクリプトの名前です。モジュールとしてインポートされませんでした。コードがモジュールとしてインポートされた場合、その部分はモジュール名に置き換えられます。属性__name__はモジュール名です。最上位スクリプトの名前は__main__.

于 2013-02-02T11:54:09.100 に答える
1

RoundFloat他のクラスに属していないため、メイン シーケンスで実行しています。

RoundFloatクラスを別のクラス内に配置すると、おそらく または のいずれSomeOtherClass.RoundFloatかになりますmain.SomeOtherClass.RoundFloat

(「メイン シーケンス」が適切な Python 用語かどうかはわかりませんが、私の言いたいことを理解していただければ幸いです。)

于 2013-02-02T11:54:55.603 に答える