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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

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

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

一.語(yǔ)義解釋

1.__name__

__name__?是python的內(nèi)置屬性,是系統(tǒng)全局變量!每一個(gè)py文件都有一個(gè)屬于自己的__name__:

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

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

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

2.”__main__”

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

3.__name__ == “__main__”

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

a.新建一個(gè) 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:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

import os

import subprocess

import sys

# 定義一個(gè)函數(shù)并打印 __name__

def prit_name():

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

if __name__ == "__main__":

# 獨(dú)立執(zhí)行

prit_name()

print ("run alonely!")

else:

# 被導(dǎo)入

print ("not run alonely!")

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

b.新建一個(gè) python_main.py 文件,作為啟動(dòng)文件 (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:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

import os

import subprocess

import sys

# 導(dǎo)入 my_name 模塊

import my_name

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

alice_num = phonebook["alice"]

num = 3+6;

# 定義一個(gè)函數(shù)并打印 __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()

輸出結(jié)果:

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

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

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

my_name.py?__name__:?__main__

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

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

二.作用

1.__name__ == “__main__” 作為啟動(dòng)py文件的main函數(shù)入口

2.一個(gè)項(xiàng)目中必然會(huì)包含多個(gè)模塊文件,每個(gè)模塊文件在自己寫完代碼之后會(huì)做一些簡(jiǎn)單的測(cè)試用于檢測(cè)bug 或者 對(duì)自己的函數(shù)調(diào)用寫一個(gè)簡(jiǎn)單的示例,而恰到好處的是:__name__ == “__main__”? 既不會(huì)影響你的測(cè)試代碼,也不會(huì)影響別人調(diào)用你的接口函數(shù)。

if __name__ == "__main__":

# 獨(dú)立執(zhí)行

prit_name()

print ("run alonely!")

else:

# 被導(dǎo)入

print ("not run alonely!")

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。