Ecco come fare il vostro molto proprio clsoclear comando comando che funzionerà senza chiamare esplicitamente alcuna funzione!
Approfitteremo del fatto che la console python chiama repr()per visualizzare gli oggetti sullo schermo. Ciò è particolarmente utile se hai la tua shell python personalizzata (con l' -iopzione per esempio) e hai uno script di precaricamento per essa. Questo è quello di cui hai bisogno:
import os
class ScreenCleaner:
def __repr__(self):
os.system('cls')
return ''
cls = ScreenCleaner()
Usa clearinvece di clsse sei su Linux (sia nel oscomando che nel nome della variabile)!
Ora se scrivi clso clearnella console, lo cancellerà! Nemmeno cls()o clear()- solo la variabile grezza. Questo perché python chiamerà repr(cls)per stamparlo, il che a sua volta attiverà il nostro__repr__ funzione.
Proviamolo:
>>> 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
E lo schermo è chiaro!
Per chiarire, il codice sopra deve essere importato nella console in questo modo
from somefile import cls
Oppure precarica direttamente con qualcosa come:
python -i my_pre_loaded_classes.py