我正在嘗試組合一個具有「級別」概念的工具。 每個'級別'都有一組變量,這些變量需要用來支持我想要達到的特定於每個級別的活動。製作一個動態變量集
我已經寫了一個硬編碼的版本,可以在某種程度上起作用,但是它僅限於硬編碼的層數。這讓我感到必須有寫本功能等都可以動態生成的水平瓦爾的巧妙方式:
def levelVarsGetter(level):
if level == 1:
levelDict = {'URLRegEx':baseDict['L1Regex'], 'titleRegEx':baseDict['L1TitleRegex'], 'buildPortion':baseDict['L1buildPortion'], 'levelParser':'level_1'}
elif level ==2:
levelDict = {'URLRegEx':baseDict['L2Regex'], 'titleRegEx':baseDict['L2TitleRegex'], 'buildPortion':baseDict['L2buildPortion'], 'levelParser':'level_2'}
elif level ==3:
levelDict = {'URLRegEx':baseDict['L3Regex'], 'titleRegEx':baseDict['L3TitleRegex'], 'buildPortion':baseDict['L3buildPortion'], 'levelParser':'level_3'}
elif level ==4:
levelDict = {'URLRegEx':baseDict['L4Regex'], 'titleRegEx':baseDict['L4TitleRegex'], 'buildPortion':baseDict['L4buildPortion'], 'levelParser':'level_4'}
elif level ==5:
levelDict = {'URLRegEx':baseDict['L5Regex'], 'titleRegEx':baseDict['L5TitleRegex'], 'buildPortion':baseDict['L5buildPortion'], 'levelParser':'level_5'}
return levelDict
所有在字典的增值經銷商在初始化FUNC手工輸入。如有需要,標籤可以更改。
的情況下,參考代碼:
for x in xrange (1, baseDict['numberOfLevels']+1):
links=[]
levelDict= levelVarsGetter(x)
URLRegEx = levelDict['URLRegEx']
titleRegEx = levelDict['titleRegEx']
buildPortion = levelDict['buildPortion']
level = levelDict['levelParser']
go = siteParser()
除非他將有數十或數百個動態輸入和隨機訪問級別,或者他的水平數必須是不連續的,這似乎是一個列表,甚至元組是外一個更好的結構外殼比字典。 –
@ sr2222:我同意,除了我不確定它是順序的。 (即使這些項目是隨機訪問的,列表仍然更好)。 –
另外,你每次訪問同一級別的關卡數據時都不會構建全新的字典。 –