1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class Page(object): def __init__(self, name, pages=None): self.name = name self.pages = pages if pages is not None else [] def __iter__(self): return iter(self.pages) # only immediate children def walk(self, topdown=True): # all pages recursively if topdown: yield self for page in self: for subpage in page.walk(topdown): yield subpage if not topdown: yield self page = Page('FirstPage', [ Page('FirstChild', [ Page('FirstChildChild'), Page('SecondChildChild'), ]), Page('SecondChild'), ]) for p in page.walk(): print(p.name) |
Y2xhc3MgUGFnZShvYmplY3QpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhZ2VzPU5vbmUpOgogICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICBzZWxmLnBhZ2VzID0gcGFnZXMgaWYgcGFnZXMgaXMgbm90IE5vbmUgZWxzZSBbXQogICAgZGVmIF9faXRlcl9fKHNlbGYpOgogICAgICAgIHJldHVybiBpdGVyKHNlbGYucGFnZXMpICMgb25seSBpbW1lZGlhdGUgY2hpbGRyZW4KICAgIGRlZiB3YWxrKHNlbGYsIHRvcGRvd249VHJ1ZSk6ICMgYWxsIHBhZ2VzIHJlY3Vyc2l2ZWx5CiAgICAgICAgaWYgdG9wZG93bjoKICAgICAgICAgICAgeWllbGQgc2VsZgogICAgICAgIGZvciBwYWdlIGluIHNlbGY6CiAgICAgICAgICAgIGZvciBzdWJwYWdlIGluIHBhZ2Uud2Fsayh0b3Bkb3duKToKICAgICAgICAgICAgICAgIHlpZWxkIHN1YnBhZ2UKICAgICAgICBpZiBub3QgdG9wZG93bjoKICAgICAgICAgICAgeWllbGQgc2VsZgoKCnBhZ2UgPSBQYWdlKCdGaXJzdFBhZ2UnLCBbCiAgICAgICAgUGFnZSgnRmlyc3RDaGlsZCcsIFsKICAgICAgICAgICAgICAgIFBhZ2UoJ0ZpcnN0Q2hpbGRDaGlsZCcpLAogICAgICAgICAgICAgICAgUGFnZSgnU2Vjb25kQ2hpbGRDaGlsZCcpLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgUGFnZSgnU2Vjb25kQ2hpbGQnKSwKICAgICAgICBdKQoKZm9yIHAgaW4gcGFnZS53YWxrKCk6CiAgICBwcmludChwLm5hbWUpCg==
-
upload with new input
-
result: Success time: 0.09s memory: 10840 kB returned value: 0
FirstPage FirstChild FirstChildChild SecondChildChild SecondChild


