讓我們考慮一下我們有一個叫做mod的模塊,它具有函數func。我想導入模塊並運行func,將變量var暴露給它的範圍。Python暴露在範圍內
a.func() # and func can do stuff with var
我該怎麼做?
讓我們考慮一下我們有一個叫做mod的模塊,它具有函數func。我想導入模塊並運行func,將變量var暴露給它的範圍。Python暴露在範圍內
a.func() # and func can do stuff with var
我該怎麼做?
最有可能的是,你應該添加一個參數給func(),通過它傳入變量var。如果你想讓func()修改var,那麼讓函數返回新的值。 (如有必要,您可以輕鬆擁有multiple return values)。
將變量傳遞給函數。在模塊中工作與在單個模塊中一樣。
# module a
def func(v):
print v
# module b
import a
var=42
a.func(var)
如果您需要修改該值,請將其返回。然後調用者可以將它放在任何他們想要的地方,包括回到同一個變量中。
# module a
def func(v):
return v + 1
# module b
import a
var=42
var = a.func(var) # var is now 43
一些對象,如列表,是可變,並且可以由函數來改變。你不必返回這些。有時返回它們很方便,但我會在沒有的情況下顯示它。
# module a
def func(v):
v.append(42)
# module b
import a
var=[] # empty list
a.func(var) # var is now [42]
我實際上並不想將它傳遞給函數,func實際上是用於腳本的。我只是想將一些變量暴露爲全局變量。 – nikitautiu