2017-07-04 33 views
0

我想知道是否有做以下的方法:的Python:指定一個未定義的(但必要的)變量的值在Python腳本,從另一個腳本

我有一個計劃,把它a.py。這裏有一些功能和東西。對於其中一些功能,有一個變量(是功能設置的一部分,比方說),稱之爲myvar。這個變量不是它們的參數,只是一個設置!因此,例如

def myfunc(arg1, arg2): return arg1*arg2 - myvar 該變量尚未在程序a.py中定義。

現在我想創建另一個程序b.py,這裏我想使用上述程序的輸出,但是每次我需要改變變量的值。像

import a list1 = [] for j in range(10): myvar = j list1.append(a.myfunc(arg1, arg2))

,我希望我所想要做的是明確的。有沒有辦法做到這一點?

+1

*傳遞它作爲參數。*就這麼簡單。實際上,它*是函數的一個參數,你只是試圖隱式地傳遞它,這是瘋狂。 *也許*你想要一個課程並將該值設置爲屬性。 – deceze

+0

@deceze重點是我做不到! –

+0

爲什麼呢? – deceze

回答

2

如果你只是從b設置a.myvar你應該沒問題。例如:

a.py 
---------------- 
test = 10 

def foo(): 
    print(test) 


b.py 
---------------- 
import a 

a.foo() 
a.test = 100 
a.foo() 

將輸出

10 
100 

注:除了非常小衆的應用程序,你不應該這樣做的,應該很容易使用的功能參數。

+1

雖然這個解決方案可能做OP的要求,但不應該鼓勵。 –

+1

@cᴏʟᴅsᴘᴇᴇᴅ我同意,在大多數情況下,這是不好的做法(根據OP對他的問題的評論,似乎OP不知道他們在做什麼),但對於未來的人來說,這是一個合法的應用程序至少他們會看到他們可以做到而不僅僅是「不這樣做」 –

+3

我會建議一個答案沿着......「是的,你可以做到這一點...但是這裏有一個更好的方法:」 。 –

相關問題