比方說,我有兩個類A
和B
,既類需要維持相當複雜的內部狀態,並用命令行參數的行爲變化提供:論參數傳遞對改變狀態
ARGS = [arg1, arg2, arg3]
/ \
/ \
class A: class B
def __init__(self, key1=arg1, key2=arg2 ...)
self.state1 = blah ...
self.state2 = blah ...
我有兩個問題:
(1)我可以通過key=val
參數列表初始化不同的行爲對象,但這個長長的名單很快變得笨拙。我也可以直接改變狀態,我在這裏應該遵循什麼理由或規則?
(2)由於兩個類A
和B
需要訪問的命令行選項以及其他開關,就目前而言,有一個全球性的G:
class G:
self.opt1 = True
self.opt2 = False
...
其基本上保持共享狀態和訪問各方利益?這是一個可以接受的設計,還是應該皺起眉頭的東西? TIA