0
我有一個模塊做的兩種東西之一:Python的設計模式
project/
|-- main.py
+-- module.py
main.py
import module
module.do_something()
module.set_method(module.WAY_2)
module.do_something()
module.py
WAY_1 = "the_first_way"
WAY_2 = "the_second_way"
method = WAY_1 # by default
def set_method(new_method):
method = new_method
def do_something_the_first_way():
print "Doing it the first way"
def do_something_the_second_way():
print "Doing it the second way"
def do_something():
if method == WAY_1:
do_something_the_first_way()
if method == WAY_2:
do_something_the_second_way()
當我跑main.py
,我明白了這樣的輸出:
Doing it the first way
Doing it the first way
它看起來像的module.py
的method
變量沒有得到更新,即使我們試圖用set_method
從main.py
設置。我基於this question瞭解了這裏發生了什麼,但是我想知道解決問題的最佳方法是什麼。
什麼是最優雅的Pythonic方法來解決這個問題?
'set_method'不會更改全局'method'變量,對於初學者。它並沒有真正做任何事情,截至目前 –
謝謝,這幫助我解決了這個問題! – joshreesjones