Можно ли в Python присвоить переменной вызов функции?
В командной строке Windows для очистки вывода используется команда cls.
Для того, чтобы очистить вывод интерпретатора, вызванного в командной строке, нужно уже прописывать такой код:
>>> import os
>>> os.system('cls')
Это можно упростить, создав функцию:
>>> def cls():
... os.system('cls')
...
>>>
И вызывать ее уже вот так: >>> cls()
Но все же хотелось бы как-то добиться нужного результата именно командой cls, без скобок от функции.
Первое, что пришло в голову - присвоить вызов функции переменной. Но это, к сожалению, не работает :(
Как можно реализовать мою идею? Если можно вообще...
Вот попытки присвоения вызова функции переменной, ниже их результат.
>>> cls = lambda: cls()
>>> cls
<function <lambda> at 0x01D76D60>
>>> from functools import partial
>>> cls = partial(clr)
>>> cls
functools.partial(<function cls at 0x01CA7778>)
Ответы (1 шт):
Можно переопределить __repr__. Именно этот метод вызывается когда нужно показать значение объекта в виде строки.
Приблизительно так:
class CLS:
def __repr__(self):
os.system('cls')
return ''
cls = CLS()
Теперь ввод одного лишь cls в командную строку будет вызывать CLS.__repr__.