[問題] if__name__=='name'問題

看板Python作者 (溫柔殺手)時間5年前 (2020/01/29 23:37), 編輯推噓1(1013)
留言14則, 3人參與, 5年前最新討論串1/1
各位版上的大大晚上好。 小弟在網路上看到一個時間比較的程式,想說要把它改成可以import的檔案。 方便引用 修改後的程式如下 import time def compare_time(time1,time2): s_time = time.mktime(time.strptime(time1,'%Y-%m-%d')) e_time = time.mktime(time.strptime(time2,'%Y-%m-%d')) print ('s_time is:',s_time) print ('e_time is:',e_time) return int(s_time) - int(e_time) if __name__=='__name__': result = compare_time('2017-04-23','2017-04-21') print ('the compare result is:',result) 這個程式在沒有加if __name__=='__name__': 這一行之前都可以Run出結果 加了之後在IDE下執行什麼都沒有跑出來,也沒有錯誤 請問我是不是誤會了什麼?懇請大大指導。感恩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.36.147 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1580312266.A.696.html

01/29 23:46, 5年前 , 1F
你確實是誤會了什麼,基本上google一下"python __name__"
01/29 23:46, 1F

01/29 23:46, 5年前 , 2F
就有詳細的說明囉
01/29 23:46, 2F

01/29 23:47, 5年前 , 3F
而且就算要加的話,一般是:
01/29 23:47, 3F

01/29 23:47, 5年前 , 4F
if __name__ == '__main__':
01/29 23:47, 4F

01/29 23:48, 5年前 , 5F
用來區別這段script是被import還是被直接執行的
01/29 23:48, 5F

01/29 23:48, 5年前 , 6F
如果是直接執行的,__name__的值就會是"__main__"
01/29 23:48, 6F

01/29 23:49, 5年前 , 7F
如果是被import的,__name__的值就會是這個module名稱
01/29 23:49, 7F

01/29 23:50, 5年前 , 8F
這是方便開發者可以在module裡面有一些可直接執行、但被當
01/29 23:50, 8F

01/29 23:52, 5年前 , 9F
別人import的情況不想要執行的code,例如一些測試code或直
01/29 23:52, 9F

01/29 23:52, 5年前 , 10F
接要執行的功能
01/29 23:52, 10F

01/29 23:53, 5年前 , 11F
就可以用__name__的值來分辨該不該被執行
01/29 23:53, 11F

01/30 19:41, 5年前 , 12F
原來如此,感恩大大
01/30 19:41, 12F

01/30 23:58, 5年前 , 13F
應該是if __name__ == '__main__':吧...
01/30 23:58, 13F

01/31 18:23, 5年前 , 14F
@W大大,對阿,現在看起來有點蠢哈哈。
01/31 18:23, 14F
文章代碼(AID): #1UCQRAQM (Python)
文章代碼(AID): #1UCQRAQM (Python)