python - __name__= __main__怎么解释 怎么用 另外两个py文件之间的互动关联
巴扎黑
巴扎黑 2017-04-18 10:25:24
0
4
764

name = '__main__' 的作用
有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。
def foo():
    print('in foo')
print(__name__)
foo()
if __name__=='__main__':
    foo()
返回结果
main   意思是__name__=__main,所以if语句判断True。

ob05.py
def func():
    print("func() in ob05.py")
print("top-level in ob05.py")

if name == "__main__":
    print("ob05.py is being run directly")
else:
    print("ob05.py is being imported into another module")
结果:
top-level in ob05.py
ob05.py is being run directly

ob06.py
import ob05
print("top-level in ob06.py")
ob05.func()
if name == "__main__":
    print("ob06.py is being run directly")
else:
    print("ob06.py is being imported into another module")
结果:
top-level in ob05.py
ob05.py is being imported into another module
top-level in ob06.py
func() in ob05.py
ob06.py is being run directly

Thus, when module one gets loaded, its name equals "one" instead of __main__.
意思是ob05模块被导入的话,ob05模块中的__name__=__main__
解释错或不对不完善 麻烦完善下 
那import是干嘛用呢,就引入了一个func()?name == "__main__" 是什么意思 起什么作用

巴扎黑
巴扎黑

全員に返信(4)
大家讲道理

簡単に言うと、すべての Python コード ファイルに段落を記述することができます

リーリー

ここでの dosomething は、このファイルをターミナルで直接実行する場合にのみ呼び出され、他のファイルにパッケージとしてインポートしてそのファイルを実行する場合には呼び出されません。

いいねを押す +0
Peter_Zhu

これは、Python で name == 'main' を理解する方法です:
https://github.com/pythonpeix...

いいねを押す +0
Ty80

__name__: モジュール、クラスなどの名前を示します。

__main__: モジュール、xxx.py ファイル自体を表します。

    が直接実行される場合、対応するモジュール名は __main__ であり、モジュールのテストやモジュールの使用法のデモなどのために必要なコードを
  • に追加できます。

    if __name__ == “__main__”:

  • モジュールとして他の場所にインポートすると、モジュール名はファイル名xxxになります。
いいねを押す +0
小葫芦

Function には 2 つの主な機能があります: 1. コードの再利用。 2. プロセス分解。これは、他のプログラムを作成するときに、現在作成している関数を呼び出すことができることを意味します。関数を作成した後、関数をテストするか、関数を使用して何らかの作業を行う必要があります。その後、やりたいことを if __name__=='__main__': に記述します。翌日このモジュールを呼び出す別のプログラムを作成すると、if __name__=='__main__': の前の関数が実行されますが、if __name__=='__main__': 内のコードは実行されません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート