的優雅分配變量(對不起標題的不太清楚我不能想出一個好。)長度未知
說我有像這樣(它的根目錄相對)的URL:
"/forums/support/windows/help_i_deleted_sys32/6/"
,我想這個分成階級結構是這樣的:
class Forum_Spot:
def __init__(self, url):
parts = url.strip("/").split("/")
#parts is now ["forums", "support", "windows", "help...", "6"]
self.root = "forums"
self.section = "support"
self.subsection = "windows"
self.thread = "help..."
self.post = "6"
而且說我不知道過了多久究竟將URL(也可能是「/論壇/支持/ 「,」/ forums/support/windows /「等)(但我知道它不會超過5級)。任何人都可以想到一個優雅的方式來分配這些值,讓任何未分配的部分爲None
? (例如,對於「/論壇/支持/窗/」,線程和後屬性將無)
我知道我可以做到這一點:
class Forum_Spot:
def __init__(self, url):
parts = url.strip("/").split("/")
#parts is now ["forums", "support", "windows", "help...", "6"]
if len(parts) > 0:
self.root = parts[0]
else:
self.root = None
if len(parts) > 1:
self.section = parts[1]
else:
#etc
但這顯然superinelegant和令人討厭勞動密集型。任何人都可以想到更優雅的解決方案,保持類簽名相同嗎? (我可以轉換__init__
功能採取關鍵字參數,默認爲None
,但我希望能夠只通過在URL,並有一流的數字出來自身)
謝謝!
將在級別的順序永遠是一樣的嗎? –
是的.___________________ – marky1991