Вот как сделать свою собственную команду cls
или, clear
которая будет работать без явного вызова какой-либо функции!
Мы воспользуемся тем фактом, что консоль python вызывает repr()
отображение объектов на экране. Это особенно полезно, если у вас есть собственная настраиваемая оболочка Python (например, с -i
опцией) и для нее есть сценарий предварительной загрузки. Это то, что вам нужно:
import os
class ScreenCleaner:
def __repr__(self):
os.system('cls')
return ''
cls = ScreenCleaner()
Используйте clear
вместо, cls
если вы работаете в Linux (как в os
команде, так и в имени переменной)!
Вот если вы просто напишете cls
или clear
в консоли - очистит! Даже не cls()
или clear()
- просто необработанная переменная. Это потому, что python вызовет его repr(cls)
для печати, что, в свою очередь, вызовет нашу __repr__
функцию.
Давайте проверим это:
>>> 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
И экран чистый!
Чтобы уточнить - приведенный выше код необходимо либо импортировать в консоль, как это
from somefile import cls
Или предварительно загрузите что-то вроде:
python -i my_pre_loaded_classes.py