Als ich mit Python in einer interaktiven Umgebung wie IPython spielte, war es ein Generatortyp anstelle eines Listentyps
In [2]: foo()
Out[2]: <generator object foo at 0x7f1f35a3dee8>
Ich denke, dass es eine irritierende Erfahrung gibt. Ich denke, dass es nach Python3 besonders auffällig wurde. In einem solchen Fall sollte ich es in "list (foo ())" ändern. Strg + A (oder Home), 'l', 'i', 's', 't', '(', Strg + E (oder Ende), ')' Und ich muss die 8-Taste drücken. Langweilig. Ich bin irritiert.
Ich habe es mir plötzlich ausgedacht.
class Apply:
def __init__(self, f):
self.f = f
def __lt__(self, x):
return self.f(x)
L = Apply(list)
Einmal geschrieben,
In [2]: foo()
Out[2]: <generator object foo at 0x7f1f35a3dee8>
Auch wenn es irritierend ist
In [8]: foo() >L
Out[8]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Sie können ganz einfach eine Liste erstellen, indem Sie dies tun. Wenn Sie "50-apply.py" im Verzeichnis "$ HOME / .ipython / profile_default / startup" erstellen, können Sie sich beruhigen und danach mit "> L" auflisten.
Recommended Posts