簡體   English   中英

全局變量 vs getter 函數 vs 函數變量

[英]global variable vs getter functions vs function variable

我有一個可以通過多種方式實現的場景。 我需要更優化/python 實現方式的建議,為什么?

讓我們將嵌套函數調用視為 funca1 -> funca2 -> funca3 ->funca4 funcb1 -> funcb2 -> funcb3 ->funcb4

if __name__ == "__main__":
    funca1()
    funcb1()

並且 varx 變量僅被funca4和funcb3使用/或需要。 那么我們有以下選項

  1. 創建 varx 作為全局變量並使用它 funca4 和 funcb3 而不傳遞所有函數
  2. 將 varx 變量傳遞到所有函數,即使它僅在兩個函數中使用
  3. 創建另一個函數 get_varx() 函數並且只在 funca4、funcb4 中使用它。

這也可以通過創建類並將 varx 分配為 property 來實現。 但目前的項目設計不允許這樣做

我用你給出的場景運行了一個演示代碼,並使用time模塊對執行時間進行計時,並獲得以下結果:

最快執行排名:

  1. 創建另一個函數來獲取值。
  2. 創建varx作為全局變量。
  3. 在所有函數中傳遞varx變量。

優化是相對的。

您可以通過以下方式優化:-

  1. 你的代碼有更少的行/字符

  2. 你想要最小的內存消耗

  3. 你想要最少的時間。

最短時間將是另一種函數方法

最小內存和最小行數將是全局變量。

將變量傳遞給 all 是不必要的,並且會在每個本地作用域中復制變量,從而消耗大量內存,因此應該避免這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM