关键词:
【中文标题】在python中为打印设置命令别名?【英文标题】:Set command alias for print in python? 【发布时间】:2012-08-24 20:28:50 【问题描述】:在 bash 中,你可以给命令一个别名,如下所示:
alias e=echoset
alias e="echo blah"
我想知道如何在 Python 中做同样的事情。我知道你可以给类别名,但是当我尝试给命令(例如 print 语句)一个别名时,我得到一个错误:
>>> p = print
File "<stdin>", line 1
p = print
^
SyntaxError: invalid syntax
我可以这样做:
p = "print"
exec(p)
但这与别名并不完全一样,我无法为命令提供任何输入。
更新: @atzz您猜对了,它不是特定于打印的。我要开始工作的是:
这应该是设置命令,但是当我输入这个命令时它只会发出哔哔声:>>> beep = Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
然后当我在提示中输入 beep 时,它会显示:>>> beep
<subprocess.Popen object at 0x9967b8c>
但除此之外我还有这个问题,至少现在我知道你不能给语句起别名。
【问题讨论】:
【参考方案1】:您的问题是针对print
的吗?
在 Python 3.0 之前的版本中,print
是语言语法中的关键字。由于它不是一流的语言对象,因此不能将其分配给变量。
在 Python 3.0 中,没有关键字print
;有一个 print
函数代替 (documentation)。
通过适当的 future 语句,您可以在 Python 2.6+ 中使用 print 函数:
from __future__ import print_function
a = print
a("Hello!")
【讨论】:
@gnibbler - 感谢您的更正。我“知道”它出现在 2.7 中,所以我什至错过了我链接到的文档中的相反信息:)【参考方案2】:只有 print 语句你会遇到这个问题,因为它是一个语句(比如 while/if/etc.)而不是一个函数。
如果您想“重命名”(例如)len,它会工作得很好。
【讨论】:
【参考方案3】:要回答您的新问题,如果您想这样做并稍后执行哔声:
beep = Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
改成:
beep = lambda: Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
或者只是一个函数:-)
def beep(): Popen(['play', '-q', '/home/Username/Mich/Sound Effects/Beeps/beep-17-short.ogg'])
否则 'beep' 将只保存 Popen 的返回值。
【讨论】:
谢谢,这就是我要找的。span> 【参考方案4】:这种行为正是 Python 3 出现的原因。在 PY3 中,print
是一个函数,而不是关键字,是的,你可以在那里实现。
【讨论】:
我认为这不是 Py3 发生的原因,但其余的都是正确的 :-) 确实 :-) 这也是原因之一。你可以在 package.json 中为 npm 脚本设置别名吗?
】你可以在package.json中为npm脚本设置别名吗?【英文标题】:Canyousetaliasesfornpmscriptsinsidepackage.json?【发布时间】:2019-03-0916:57:39【问题描述】:我有一个项目写在Typescript本地开发时:ts-node作为开发依赖安装,命令是tostart:"ts-node... 查看详情
如何在 Vim 中为命令创建别名?
】如何在Vim中为命令创建别名?【英文标题】:HowtocreateanaliasforacommandinVim?【发布时间】:2011-04-2204:15:37【问题描述】:Vim是我编程时首选的文本编辑器,因此我总是遇到一个特别烦人的问题。通常,当我需要快速保存缓冲区并... 查看详情
你可以在 Python 中为导入的模块定义别名吗?
】你可以在Python中为导入的模块定义别名吗?【英文标题】:CanyoudefinealiasesforimportedmodulesinPython?【发布时间】:2010-10-1622:27:22【问题描述】:在Python中,是否可以为导入的模块定义别名?例如:importa_ridiculously_long_module_name...所... 查看详情
如何在 Python 中为类型定义别名以进行类型提示
】如何在Python中为类型定义别名以进行类型提示【英文标题】:HowtodefineanaliasforatypeinPythonfortypehinting【发布时间】:2018-03-2310:01:45【问题描述】:如何为类型定义别名以使用类型提示:importtypingtypeTickerstr#Howtodothis?Iusedgolangnotation... 查看详情
我可以在 Python 中为继承的方法创建别名吗?
】我可以在Python中为继承的方法创建别名吗?【英文标题】:CanIcreateanaliastoaninheritedmethodinPython?【发布时间】:2017-03-3002:21:03【问题描述】:我的Python程序中有一个非常复杂的类层次结构。该程序有许多工具,要么是模拟器,要... 查看详情
定义命令别名
...别名语法:# aliasname=‘commandline‘参数:-p: 打印出现有的别名(唯一的参数)若不加任何参数,则列出目前所有的别名设置用法:#aliascp=‘cp-i‘或aliasl=‘ll‘这样就可以用cp来代替cp-i,而且cp-i这条命令依旧有效例... 查看详情
如何在 MySQL 中为数据库起别名?
】如何在MySQL中为数据库起别名?【英文标题】:HowdoIaliasadatabaseinMySQL?【发布时间】:2010-11-2103:25:58【问题描述】:我正在寻找一种在MySQL中为数据库设置别名的方法。原因是能够在不关闭系统的情况下重命名实时生产数据库。... 查看详情
如何为 git 别名的命令行参数设置默认值?
...数,它应该解析为默认值。lgs="!f()gitlog--stat$1;;f"gitlgs应该打印最后一次提交的统计日志。gitlgs-2-应该 查看详情
如何在 Visual Studio Code 中为 Python 设置虚拟环境?
】如何在VisualStudioCode中为Python设置虚拟环境?【英文标题】:HowcanIsetupavirtualenvironmentforPythoninVisualStudioCode?【发布时间】:2019-06-0323:42:50【问题描述】:在我的项目文件夹中,我创建了一个venv文件夹:python-mvenvvenv当我在VisualStud... 查看详情
如何在 laravel 查询生成器中为 sql 选择列添加别名?
】如何在laravel查询生成器中为sql选择列添加别名?【英文标题】:HowcanIaliassqlselectcolumnsinlaravelquerybuilder?【发布时间】:2022-01-2300:21:30【问题描述】:我有一个这样的查询,我不确定如何为每个表的选择列设置别名。你能帮我解... 查看详情
命令别名的设置alias,unalias
alias命令的作用是为系统中的命令设置别名,如果常用命令比较长,那么为其设置别名可以简化用户操作,例如为ls-l|more命令设置别名lm,这样只需要输入lm就可以得到和ls-l|more相同的效果;为rm-i设置别名为rm,... 查看详情
如何在查询中为 eloquent 模型起别名
】如何在查询中为eloquent模型起别名【英文标题】:Howtoaliaseloquentmodelsinaquery【发布时间】:2016-05-2418:16:11【问题描述】:你如何给一个雄辩的模型起别名?例如,如果我有如下SQL查询:SELECTone.name,one.id,one.nameASsortkey1,CAST(NULLASUNSI... 查看详情
在 shell 中为 git 别名转义标签登录
】在shell中为git别名转义标签登录【英文标题】:Escapehashtagsigninshellforgitalias【发布时间】:2021-12-1213:49:17【问题描述】:我在这里使用了一个git别名:[alias]wrapup="!f()number=$(gitrev-parse--abbrev-refHEAD|tr-dc\'0-9\');gitadd.&&gitcommit-m"\... 查看详情
java示例代码_在方法中为变量设置一个值,并在主方法中打印出来
java示例代码_在方法中为变量设置一个值,并在主方法中打印出来 查看详情
linux命令行设置别名
...当前账号长期生效,命令行中输入unaliasll临时取消此别名设置删除或者注释掉配置文件中的alias配置值永久删除命令行输入alias查看当前用户设置的别名命令 查看详情
在dos中为dir命令设置递归深度
】在dos中为dir命令设置递归深度【英文标题】:HowtosetrecursivedepthfortheWindowscommandDIR?【发布时间】:2012-09-1020:23:03【问题描述】:我目前正在使用以下命令列出一些目录:dir/b/s/AD>c:\\temp\\dir_list.txt这几乎给了我我需要的清单。... 查看详情
在 Windows 7 中为 composer 创建一个工作别名
】在Windows7中为composer创建一个工作别名【英文标题】:CreateaworkingaliasforcomposerinWindows7【发布时间】:2018-09-2609:19:09【问题描述】:我不确定这是路径别名,但我不确定如何在Windows7中执行此操作。当我运行PHP作曲家时,它会按... 查看详情
alias别名设置
语法:# aliasname=‘commandline‘参数:-p: 打印出现有的别名(唯一的参数)若不加任何参数,则列出目前所有的别名设置用法:#aliascp=‘cp-i‘这样就可以用cp来代替cp-i,而且cp-i这条命令依旧有效重新设置别名:alias... 查看详情