日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python程序的name属性作用是什么_python __name__ == ‘__main__’详细解释+例子

發布時間:2025/3/15 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python程序的name属性作用是什么_python __name__ == ‘__main__’详细解释+例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習過C語言或者Java語言的盆友應該都知道程序運行必然有主程序入口main函數,而python卻不同,即便沒有主程序入口,程序一樣可以自上而下對代碼塊依次運行,然后python不少開源項目或者模塊中依然存在 __name__ == “__main__” 這種寫法,具體是上面意思呢?

一.語義解釋

1.__name__

__name__?是python的內置屬性,是系統全局變量!每一個py文件都有一個屬于自己的__name__:

如果py文件作為模塊被導入(import),那么__name__就是該py文件的文件名(也稱 模塊名);

如果py文件直接運行時(Ctrl+Shift+F10),那么__name__默認等于字符串”__main__”;

舉個簡單的例子:假如你名字是張三,在朋友眼中,你是張三(__name__ == '張三');在你自己眼中,你是你自己(__name__ == '__main__')

2.”__main__”

“_ _main_ _”?實際上就是一個字符串,用來鑒別程序入口,沒有太多花里胡哨的東西.

3.__name__ == “__main__”

當.py文件被直接運行?(Ctrl+Shift+F10)時,?if??__name__ == “__main__”??之下的代碼塊將被運行,該語句就相當與python的main主函數入口,示例代碼如下:

a.新建一個 my_name.py 文件,作為模塊文件:

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@file name: my_name.py

Created on: 2020-9-03

Author: Charlie

This program is just a test; you can run it.

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

import os

import subprocess

import sys

# 定義一個函數并打印 __name__

def prit_name():

print ("my_name.py __name__:", __name__)

if __name__ == "__main__":

# 獨立執行

prit_name()

print ("run alonely!")

else:

# 被導入

print ("not run alonely!")

=======================================

b.新建一個 python_main.py 文件,作為啟動文件 (Ctrl+Shift+F10):

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@file name: python_main.py

Copyright (C) 2020 GRGBanking Corporation

Created on: 2020-9-03

Author: Charlie

This program is just a test; you can run it.

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

import os

import subprocess

import sys

# 導入 my_name 模塊

import my_name

phonebook = {'alice':'123','tom':'456'}

alice_num = phonebook["alice"]

num = 3+6;

# 定義一個函數并打印 __name__

def prit_name():

my_name.prit_name()

print("python_main.py __name__:", __name__)

print ("alice_num = %d",alice_num)

print('%s' % 'alice_num')

print('%s' % alice_num)

print('%d' % 56)

print('%d' % num)

if __name__ == "__main__":

prit_name()

輸出結果:

pchui@ubuntu:~/work/RK3399/charlie$ python python_main.py

not run alonely!

('my_name.py __name__:', 'my_name')

('python_main.py __name__:', '__main__')

('alice_num = %d', '123')

alice_num

123

56

9

由此可見,作為啟動文件 python_main.py ,該文件的內置屬性 __name__ 等于 “__main__”,而my_name.py 作為導入模塊,該模塊的 __name__ 等于文件名(也稱模塊名字),所以my_name.py 中的 表達式 if __name__ == “__main__” 并不成立!

當直接將my_name.py作為啟動文件時?(Ctrl+Shift+F10),輸出:

my_name.py?__name__:?__main__

如果py文件作為模塊被導入(import),那么__name__就是該py文件的文件名(也稱 模塊名);

如果py文件直接運行時(Ctrl+Shift+F10),那么__name__默認等于字符串”__main__”;

二.作用

1.__name__ == “__main__” 作為啟動py文件的main函數入口

2.一個項目中必然會包含多個模塊文件,每個模塊文件在自己寫完代碼之后會做一些簡單的測試用于檢測bug 或者 對自己的函數調用寫一個簡單的示例,而恰到好處的是:__name__ == “__main__”? 既不會影響你的測試代碼,也不會影響別人調用你的接口函數。

if __name__ == "__main__":

# 獨立執行

prit_name()

print ("run alonely!")

else:

# 被導入

print ("not run alonely!")

總結

以上是生活随笔為你收集整理的python程序的name属性作用是什么_python __name__ == ‘__main__’详细解释+例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。