示例代碼從一個模塊:如何在Python中使用具有相同名稱的命名參數和全局變量?
somevar = "a"
def myfunc(somevar = None):
# need to access both somevars ???
# ... if somevar was specified print it or use the global value
pass
if __name__ == '__main__':
somevar = "b" # this is just for fun here
myfunc("c")
myfunc() # should print "a" (the value of global variable)
至少有兩個原因使用相同的名稱:教育(學習如何使用本地/全局)和使用在模塊。
讓我們說這個代碼是你的模塊的一部分:mymodule
和你想要做的事情,如:
import mymodule
mymodule.samevar = "default"
...
mymodule.myfunc(somevar = "a")
...
mymodule.myfunc()
正如你在這個例子被簡化想象,想象somevar
參數是許多可選的一個參數,並且myfunc在許多地方被調用。
您是否嘗試過關鍵詞'global'和'local'? – NickHalden 2010-08-10 17:13:15
第二個電話應該真的打印「C」,還是應該是「a」? – theomega 2010-08-10 17:19:20
@theomega:謝謝你的評論,我糾正了這個例子。 – bogdan 2010-08-11 09:33:46