劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-04-20 15:06
python中使用from import語句和import語句的程式打包後前者exe體積會比後者小嗎?
7
回覆列表
1 # 使用者7369556299410
客戶端可以執行import或from語句。
如果模組還沒有載入,這兩個語句會去搜索、編譯以及執行模組檔案程式。主要差別在於,import會讀取整個模組,所以必須進行定義後才能讀取它的變數名;from將獲取(或者是複製)模組特定的變數名。import使一個變數名引用整個模組物件,因此必須透過模組名稱來得到該模組的屬性(例如,module1.printer)。而from會把變數名複製到另一個作用域,所以它就可以直接在指令碼中使用複製後的變數名,而不用透過模組(例如,printer)。from語句有破壞名稱空間的潛質。如果使用from匯入變數,而那些變數碰巧和作用域中現有變數重名,變數就會被悄悄的覆蓋掉。使用import語句時就不存在這種問題,因為必須透過模組名才能獲取其內容。不過,使用from時,只要你瞭解並預料到可能發生這種事,在實際情況下這就不是一個大問題了,尤其是當你明確列出匯入變數名時(例如,from module import x, y, z)。另一方面,和reload呼叫同時使用時,from語句有比較嚴重的問題,因為匯入的變數名可能引用之前版本的物件。再者,from module import *形式的確可能破壞名稱空間,讓變數名難以理解,尤其是在匯入一個以上的檔案時。比較務實的建議是:簡單的模組一般傾向於使用import,而不是from。多數的from語句是用於明確列舉想要的變數,而且限制在每個檔案中只用一次from *形式。這樣一來,任何無定義的變數名都可以認為是存在於from *所引用的模組內。當你必須使用兩個不同模組內定義的相同變數名變數時,才真的必須使用import,這種情況下不能使用from。
發表回復
相關內容
pyinstaller打包後的python的exe軟體怎麼加殼加密?
python向sql語句中傳參?
如何打包Python指令碼使用的Python庫?
∧
中秋節和大豐收的關聯?
∨
考育嬰師的書籍有哪些好的推薦?
熱門排行
一邊走路一邊直播用什麼設備?
毛衣生產基地哪裡最好?
寶媽半夜帶孩子崩潰文案?
給孩子們自制小籠包經典文案?
綠焰多肉可以曬太陽嗎?
tfboys為什麼有十週年?
準星跟隨怎麼設置?
怎麼給小芭比做衣服和裙子?
龍之業火怎麼洗詞條?
直飲機預留口怎麼遮擋?
客戶端可以執行import或from語句。
如果模組還沒有載入,這兩個語句會去搜索、編譯以及執行模組檔案程式。主要差別在於,import會讀取整個模組,所以必須進行定義後才能讀取它的變數名;from將獲取(或者是複製)模組特定的變數名。import使一個變數名引用整個模組物件,因此必須透過模組名稱來得到該模組的屬性(例如,module1.printer)。而from會把變數名複製到另一個作用域,所以它就可以直接在指令碼中使用複製後的變數名,而不用透過模組(例如,printer)。from語句有破壞名稱空間的潛質。如果使用from匯入變數,而那些變數碰巧和作用域中現有變數重名,變數就會被悄悄的覆蓋掉。使用import語句時就不存在這種問題,因為必須透過模組名才能獲取其內容。不過,使用from時,只要你瞭解並預料到可能發生這種事,在實際情況下這就不是一個大問題了,尤其是當你明確列出匯入變數名時(例如,from module import x, y, z)。另一方面,和reload呼叫同時使用時,from語句有比較嚴重的問題,因為匯入的變數名可能引用之前版本的物件。再者,from module import *形式的確可能破壞名稱空間,讓變數名難以理解,尤其是在匯入一個以上的檔案時。比較務實的建議是:簡單的模組一般傾向於使用import,而不是from。多數的from語句是用於明確列舉想要的變數,而且限制在每個檔案中只用一次from *形式。這樣一來,任何無定義的變數名都可以認為是存在於from *所引用的模組內。當你必須使用兩個不同模組內定義的相同變數名變數時,才真的必須使用import,這種情況下不能使用from。