網站首頁 編程語言 正文
前言:
我們先定義一個test01.py的文件。
test01.py中代碼如下所示:
def step(): print(__name__) print('step1 買菜' 'step2 洗菜' 'step3 切菜' 'step4 炒菜') if __name__=='__main__': print('準備制作菜品') step() print('制作完成')
輸出結果:
注意:這段代碼中輸出的第一句。
print(__name__)
if __name__=='__main__'
是一個判斷模塊是以什么形式運行的語句。
如果這個模塊本身不被其他模塊調用,而是自己運行的,,那么有沒有if __name__=='__main__'
,執行效果應該都是一樣的,這時__name__
的值就等于'__本模塊名 + main__'
;
如果這個模塊被其他模塊調用。會出現什么情況呢?
如圖所示定義一個test02.py文件:
輸出結果如圖所示:
我們發現,在test01中的輸出語句“準備制作菜品”、“制作完成”
并沒有輸出。
不難看出,test02不符合test01中if __name __= __main__
的判斷條件。
敲黑板總結啦:
__name__是用來標識模塊名字的一個系統變量。這里分兩種情況:第一種情況指的是當前運行的模塊,那么當前模塊__name__的值就為"main";
第二種情況指的是該模塊是使用import導入的模塊,那么這個被導入模塊的__name__變量的值為該模塊的文件名。
再來看一個例子:
test_one.py:
def test_function(): print(__name__) def test1_function(name): print(type(name), name)
test.py:
from test_one import * test_function() test1_function(__name__)
輸出結果:
原文鏈接:https://blog.csdn.net/weixin_44025103/article/details/124888944
相關推薦
- 2022-04-14 淺談Go切片的值修改是否會覆蓋數組的值?_Golang
- 2022-02-01 CSS3自定義滾動條樣式
- 2023-01-26 python獲取redis?memory使用情況場景分析_python
- 2022-12-26 Python標準庫os常用函數和屬性詳解_python
- 2022-06-01 詳解C語言中二分查找的運用技巧_C 語言
- 2022-10-23 C#實現觀察者模式(Observer?Pattern)的兩種方式_C#教程
- 2022-10-01 終于搞懂了Python中super(XXXX,?self).__init__()的作用了_pytho
- 2022-07-08 PyHacker編寫指南引用Nmap模塊實現端口掃描器_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支