print
はPython 2のステートメントでしたが、現在はPython 3の括弧を必要とする関数になりました。
とにかくPython 3でこれらの括弧を抑制する方法はありますか?多分印刷機能を再定義することで?
だから、代わりに
print ("Hello stack over flowers")
次のように入力できます:
print "Hello stack over flowers"
Python 3で印刷するには括弧のペアが必要ですが、print
の後にスペースは必要ありません。これは関数であるためです。したがって、それはたった1つの余分な文字です。
それでも1組のかっこを入力すると「不必要に時間がかかる」ことがわかった場合は、p = print
を実行し、そのようにいくつかの文字を保存できます。新しい参照を関数にはバインドできますが、キーワードにはバインドできないため、Pythonでこのprint
ショートカットのみを実行できます。
Python 2:
>>> p = print
File "<stdin>", line 1
p = print
^
SyntaxError: invalid syntax
Python 3:
>>> p = print
>>> p('hello')
hello
コードを読みにくくしますが、何かを印刷するたびにこれらの少数の文字を保存します。
AHKスクリプトは素晴らしいアイデアです。興味のある人だけのために、私のために働くために少し変更する必要がありました:
SetTitleMatchMode,2 ;;; allows for a partial search
#IfWinActive, .py ;;; scope limiter to only python files
:b*:print ::print(){Left} ;;; I forget what b* does
#IfWinActive ;;; remove the scope limitation
いいえ。それはPython 3で常に構文エラーになります。2to3
を使用してコードをPython 3に変換することを検討してください
Python 3コードでprint
を括弧なしで使用することはお勧めできません。また、エイリアスなども作成していません。それが契約違反の場合は、Python 2を使用します。
ただし、括弧のないprint
は、対話型シェルでは便利な場合があります。実際には文字数を減らすことではなく、デバッグ中に何かを印刷するたびにShiftキーを2回押す必要を回避します。 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
Autohotkeyを使用してマクロを作成します。 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 2のように、かっこなしでキーワードにすることしかできないため、できません。手動でキーワードを定義することはできません。
Python 3では、printは関数ですが、以前のバージョンではステートメントでした。 @holdenwebが示唆したように、 2to を使用してコードを翻訳します。