Python解释器和Alias的

时间:2016-02-25 03:12:35

标签: python

是否存在可以在Ipython或Python Interpreter中使用的别名(类似BASH)的机制?

例如,如果我发现自己经常做类似的事情:

var = urllib2.urlopen('http://programmers.stackexchange.com')

但我不想继续输入那些字符串。

除了为脚本编写脚本之外,是否存在缩短请求的任何方法(持续出口之间)?

2 个答案:

答案 0 :(得分:1)

不,但在你的翻译中,请写下:

def pse_url():
    global var
    var = urllib2.urlopen('http://programmers.stackexchange.com')

然后,只要您需要影响变量,请写pse_url()。 不使用全局变量会更清晰:

var = pse_url()

如果您有许多此类实用程序,请将它们放在您自己的模块中,并在启动REPL时加载它们一次。

答案 1 :(得分:1)

我的猜测是这样的一行表达式,你可以创建lambdas函数(和更强大的函数建议 @coredump ),见下面的代码:

se_open = (lambda: urllib2.urlopen('http://programmers.stackexchange.com'))
so_open = (lambda: urllib2.urlopen('http://programmers.stackexchange.com'))

知道是否必须创建新的var,只需运行命令:

var_se = se_open()
var_so = so_open()

此外,您可以创建包含所有快捷方式的脚本,并通过命令使用导入的脚本启动python:

$ python -i script.py

script.py中定义的所有功能都可以在您的REPL中使用。