在print
曾经是在Python 2中的语句,如今却成了一个需要括号在Python 3的功能。
无论如何,在Python 3中是否有抑制这些括号的内容?也许通过重新定义打印功能?
所以,代替
print ("Hello stack over flowers")
我可以输入:
print "Hello stack over flowers"
在print
曾经是在Python 2中的语句,如今却成了一个需要括号在Python 3的功能。
无论如何,在Python 3中是否有抑制这些括号的内容?也许通过重新定义打印功能?
所以,代替
print ("Hello stack over flowers")
我可以输入:
print "Hello stack over flowers"
()
都是不必要的。
Answers:
尽管您需要在Python 3中打印一对括号,但是您不再需要在空格print
,因为它是一个函数。因此,这只是一个额外的字符。
如果仍然发现键入一对括号是“不必要的耗时”,则可以这样做p = print
并保存一些字符。因为您可以将新引用绑定到函数,但不能绑定到关键字,所以只能print
在Python 3中执行此快捷方式。
Python 2:
>>> p = print
File "<stdin>", line 1
p = print
^
SyntaxError: invalid syntax
Python 3:
>>> p = print
>>> p('hello')
hello
这会使代码的可读性降低,但是每次打印内容时,您都将保存这几个字符。
print
在Python 3代码中不带括号使用不是一个好主意。也没有创建别名等。如果这很麻烦,请使用Python 2。
但是,print
在交互式外壳中,不带括号可能会很有用。减少字符数并不是真正的问题,而是避免了每次在调试时想要打印某些内容时都需要按两次Shift键。如果以斜线开头,则IPython允许您在不使用括号的情况下调用函数:
Python 3.6.6 (default, Jun 28 2018, 05:43:53)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: var = 'Hello world'
In [2]: /print var
Hello world
如果打开autocall
,甚至不需要输入斜杠:
In [3]: %autocall
Automatic calling is: Smart
In [4]: print var
------> print(var)
Hello world
使用自动热键制作一个宏。AHK是免费的,安装简单。www.autohotkey.com
您可以将宏分配给alt-p:
!p::send print(){Left}
这将使alt -p放出print()并将光标移到括号内。
或者,甚至更好的是,要直接解决您的问题,您可以定义一个自动替换并将其范围限制为打开文件具有.py扩展名的时间:
#IfWinActive .py ;;; scope limiter
:b*:print ::print(){Left} ;;; I forget what b* does. The rest should be clear
#IfWinActive ;;; remove the scope limitation
这是一个有保证的,无痛的透明解决方案。
不会。在Python 3中,这始终是语法错误。请考虑使用2to3
将代码转换为Python 3
shift
+ 9
.....然后再shift
+0
是详尽的。
print
,它应该不受无用的调试技术(例如,一对括号)的束缚。
print
我认为,对于那些贫穷的打字员来说,多余的括号可能不方便,但是重新定义功能所提供的灵活性被认为是值得的。
您不能这样做,因为没有括号的唯一方法就是将其作为关键字,就像在Python 2中一样。您不能手动定义关键字,所以不能。
我终于找到了正则表达式,可以在旧的Python2示例脚本中更改所有这些。否则请使用2to3.py。
在Regexr.com上尝试一下,在NP ++(?)中不起作用:
find: (?<=print)( ')(.*)(')
replace: ('$2')
对于变量:
(?<=print)( )(.*)(\n)
('$2')\n
对于标签和变量:
(?<=print)( ')(.*)(',)(.*)(\n)
('$2',$4)\n
(?<=print)( ')(.*)(')
\('$2'\)
print ('string')
,这样可以更轻松地突出显示可打印的内容,然后使用许多编辑器的自动关闭功能添加括号然后加上引号。