Voici comment créer le vôtre clsouclear commande qui fonctionnera sans appeler explicitement une fonction!
Nous profiterons du fait que la console python appelle repr()pour afficher des objets à l'écran. Ceci est particulièrement utile si vous avez votre propre shell python personnalisé (avec l' -ioption par exemple) et que vous avez un script de pré-chargement pour celui-ci. Voici ce dont vous avez besoin:
import os
class ScreenCleaner:
def __repr__(self):
os.system('cls')
return ''
cls = ScreenCleaner()
Utilisez clearplutôt que clssi vous êtes sous Linux (à la fois dans la oscommande et dans le nom de la variable)!
Maintenant, si vous écrivez simplement clsou cleardans la console, cela l'effacera! Pas même cls()ou clear()- juste la variable brute. C'est parce que python appellera repr(cls)pour l'imprimer, ce qui déclenchera à son tour notre __repr__fonction.
Testons-le:
>>> df;sag
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'df' is not defined
>>> sglknas
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sglknas' is not defined
>>> lksnldn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'lksnldn' is not defined
>>> cls
Et l'écran est clair!
Pour clarifier - le code ci-dessus doit soit être importé dans la console comme ceci
from somefile import cls
Ou pré-chargez directement avec quelque chose comme:
python -i my_pre_loaded_classes.py