Вот как сделать свою собственную команду 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