Et là pour chopper le sous-répertoire "toto" de mon Directory(truc) je fais truc['toto'].
Je n'ai même pas pensé à inclure le '..' dans mes fichiers, j'ai un cas particulier si on fait cd .., c'était tellement évident de faire ça !
On pourrait accéder à truc/toto via truc.toto en implémentant __getattr__ comme j'ai fait le __getitem__, mais si "toto" est dans une variable il faut faire getattr(truc, variable_toto), ça ne simplifie pas la lecture, c'est plus simple d'utiliser truc[variable_toto].
Après on peut implémenter __truediv__ et faire que truc/"toto" retourne Directory(truc/toto).
Là on a root/"a"/"b"/".."/"c"/".."/".."/"e"/"f" = Directory("/e/f") :)
Mais les guillemets partout alourdissent la lecture et l'écriture...
Sinon, côté algo, et même implémentation, c'est pareil rien à signaler, pas de subtilité, j'ai juste utilisé du if line.startswith("$ cd"): cwd = cwd[line[5:]] plutôt qu'une regexp.
[^] # Re: En Python
Posté par Yth (Mastodon) . En réponse au message Avent du Code, jour 7. Évalué à 3.
Et un peu d'utilisation de fonction magiques chez moi ici :
Et là pour chopper le sous-répertoire
"toto"de monDirectory(truc)je faistruc['toto'].Je n'ai même pas pensé à inclure le
'..'dans mes fichiers, j'ai un cas particulier si on faitcd .., c'était tellement évident de faire ça !On pourrait accéder à
truc/totoviatruc.totoen implémentant__getattr__comme j'ai fait le__getitem__, mais si"toto"est dans une variable il faut fairegetattr(truc, variable_toto), ça ne simplifie pas la lecture, c'est plus simple d'utilisertruc[variable_toto].Après on peut implémenter
__truediv__et faire que truc/"toto" retourneDirectory(truc/toto).Là on a
root/"a"/"b"/".."/"c"/".."/".."/"e"/"f" = Directory("/e/f"):)Mais les guillemets partout alourdissent la lecture et l'écriture...
Sinon, côté algo, et même implémentation, c'est pareil rien à signaler, pas de subtilité, j'ai juste utilisé du
if line.startswith("$ cd"): cwd = cwd[line[5:]]plutôt qu'une regexp.