Oto jak stworzyć własne polecenie clslub clearpolecenie, które będzie działać bez jawnego wywoływania żadnej funkcji!
Wykorzystamy fakt, że konsola Pythona wywołuje repr()wyświetlanie obiektów na ekranie. Jest to szczególnie przydatne, jeśli masz własną dostosowaną powłokę Pythona ( -ina przykład z opcją) i masz do niej wstępnie ładowany skrypt. Oto, czego potrzebujesz:
import os
class ScreenCleaner:
def __repr__(self):
os.system('cls')
return ''
cls = ScreenCleaner()
Użyj clearzamiast, clsjeśli jesteś w systemie Linux (zarówno w ospoleceniu, jak i nazwie zmiennej)!
Teraz, jeśli po prostu napiszesz clslub clearw konsoli - wyczyści to! Nawet cls()ani clear()- tylko surowa zmienna. Dzieje się tak, ponieważ Python wywoła, repr(cls)aby go wydrukować, co z kolei uruchomi naszą __repr__funkcję.
Przetestujmy to:
>>> 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
A ekran jest czysty!
Aby wyjaśnić - powyższy kod musi zostać zaimportowany do konsoli w ten sposób
from somefile import cls
Lub załaduj wstępnie bezpośrednio za pomocą czegoś takiego:
python -i my_pre_loaded_classes.py