2017-07-28 47 views
1

正如我從書中瞭解的那樣,Python中的函數只不過是Function類的對象。我有一些懷疑如下:Python函數對象的創建

1.當這個對象被創建?在我們定義函數的時候或者在我們調用函數的時候?

2.如果它在我們定義函數的時候被創建,那麼如果我們不在程序的任何地方調用該函數,它會不會浪費內存?

尋找詳細的答案。

+1

1)當你定義函數2)如果你定義了一個函數,你永遠不打算打電話?是的,我會說這是浪費。儘管可能非常小,即使在適中的硬件上。 –

回答

1
  1. 只要定義一個函數或方法(它不過是一個綁定函數),Python就會創建一個Function實例。當您的代碼第一次運行時會發生這種情況。

  2. 是的,這是對內存的「浪費」,但考慮與大數組,二進制文件等相比有多少內存。Python絕對不是性能最高或資源輕的語言/解釋器,但它節省了你有很多時間來編寫代碼(因爲你寫的較少),關心優化(通常不會)。我的意思是認真的,現在的文件大小隻有幾KB?當然,價值的損失不到一分鐘的時間。

    那些未使用的函數無法優化的原因是它們可能會在以後用於相同的腳本或其他腳本。