在python中为打印设置命令别名?

     2023-02-19     147

关键词:

【中文标题】在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您猜对了,它不是特定于打印的。我要开始工作的是:

这应该是设置命令,但是当我输入这个命令时它只会发出哔哔声:&gt;&gt;&gt; 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... 查看详情