在bash中,您可以为命令指定一个别名,如下所示:
alias e=echoset
alias e="echo blah"
Run Code Online (Sandbox Code Playgroud)
我想知道如何在Python中做同样的事情.我知道你可以给类别名,但是当我尝试给命令(例如print语句)一个别名时,我收到一个错误:
>>> p = print
File "<stdin>", line 1
p = print
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我可以做这个:
p = "print"
exec(p)
Run Code Online (Sandbox Code Playgroud)
但这与别名不是一回事,我不能给命令任何输入.
更新: @atzz你猜错了,它不是特定的打印.我想要开始工作的是:
这应该设置命令,但是当我输入它时它只是发出蜂鸣声:
>>> beep = Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
然后当我在提示符中输入蜂鸣声时,它会显示:
>>> beep
<subprocess.Popen object at 0x9967b8c>
但除此之外,我有这个问题,至少现在我知道你不能给出语句别名.
你的问题是否具体print?
在3.0之前的Python中,print是语言语法中的关键字.由于它不是一流的语言对象,因此无法将其分配给变量.
在Python 3.0中,没有关键字print; print而是一个功能(文档).
使用适当的future语句,您可以使用Python 2.6+中的print函数:
from __future__ import print_function
a = print
a("Hello!")
Run Code Online (Sandbox Code Playgroud)
要回答您的新问题,如果您想执行此操作并稍后执行蜂鸣声:
beep = Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
Run Code Online (Sandbox Code Playgroud)
将其更改为:
beep = lambda: Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
Run Code Online (Sandbox Code Playgroud)
或者只是一个函数:-)
def beep(): Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
Run Code Online (Sandbox Code Playgroud)
否则'beep'将只保存Popen的返回值。