我正在使用程序Maya在python中製作一個相當大的項目。我有很多選項將由GUI和用戶輸入確定。 選項的一個示例是呈現的維度。但是我還沒有製作一個圖形用戶界面,我仍然處於測試階段。將gui變量傳遞給類的有效方法?
我最終要的是一種有變量能夠由多個模塊內的各種類/方法進行查找和使用。另外還有一種方法可以在沒有實際GUI的情況下測試所有代碼。
我應該直接所有的數據傳遞給每個方法?我的這個問題是,如果foo方法依賴於變量A,但法條需要調用foo,它可以得到真正討厭的來自世界各地的所謂的傳遞這些變量來富。
另一種方式,我看到路過的所有變量,通過給每個類實例本身並使用實例變量的訪問。但是如果選項發生變化,那麼每次運行時都必須重新輸入重新導入。
爲了測試我現在用的是從與變量的配置文件獲取變量的模塊,我導入模塊和整個腳本中使用實例變量。
def __init__(self):
# Get and assign all instance variables.
options = config_section_map('Attrs', '%s\\ui_options.ini' %(data_path))
for k, v in options.items():
if v.lower() == 'none':
options[k] = None
self.check_all = int(options['check_all'])
self.control_group = options['control_group']
有沒有人有任何建議,或可以指出我在正確的方向處理獲取/使用UI變量?
你可能會考慮一個'Session'或'Interface'類,你的邏輯和用戶界面之間的高層次的接口層。它可以處理所有你需要的變量管理,通過它自己的方法或通過調用其他類的方法;或者,它可以直接提供對其他類的訪問。在運行代碼時,您需要啓動會話,初始化所有邏輯,然後通過將會話傳遞給它來啓動您的UI。在無代碼的情況下使用代碼時,您只需刪除UI層,並直接與會話交互(用於測試)或添加另一個專用層(即CLI)。 – mapofemergence
謝謝,我會試試! –