簡體   English   中英

Python遞歸:與僅聲明全局變量並在函數中重新聲明相比,傳遞所有變量是否有任何優勢?

[英]Python Recursion: Are there any advantages to passing all variables vs just declaring a global variable and re-declaring in the function?

當我查看python代碼時,我看到了python中處理變量的兩種樣式。

  1. 傳遞所有變量。

#initialize
variable1 = 1
variable2 = 1
variable3 = 1

def recursive(variable1, variable2, variable3):
    do stuff with variables
    recursive(variable1, variable2, variable3)
  1. 如果變量在函數內不需要單獨的實例,則將其設置為全局

#initialize
variable1 = 1
global variable2 
variable2 = 1
global variable3 
variable3 = 1

def recursive(variable1):
    global variable2
    global variable3
    do stuff variables
    recursive(variable1)

兩種風格都有什么優點嗎? 一個比另一個更“ pythonic”嗎?

過度使用global可能很難調試。 pythonic方式肯定是將所有內容顯式傳遞或將工作封裝到較小的函數中,以使所有這三個變量不會太冗長。

在您的情況下,可能有一種更簡單的方法:

def recursive(*args)
    # Do stuff with args
    recursive(*args)

這消除了很多您可能不需要關心的冗長的細節。

暫無
暫無

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

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