2013-11-27 3 views
11

से वहाँ from __future__ import print_function करने के लिए कुछ बराबर है कि आगे की बंदरगाहों अजगर 2.x से print बयान?अतीत आयात print_statement

कुछ ipython जादू मुझे प्रोटोटाइप दौरान कोष्ठक आसपास की आवश्यकता के बिना प्रिंट देता है कि शामिल एक उत्तर भी स्वीकार्य है।

+2

यदि यह इंटरैक्टिव खोल के लिए बस है, आप 'print' को बिल्कुल, है न की जरूरत नहीं है? बस एक अभिव्यक्ति लिखें और आप परिणाम देखेंगे। –

+1

आप रूबी –

+0

@tobias_k हाँ की तलाश में हो सकता है, लेकिन अक्सर मैं कार्यों से जानकारी मुद्रण पसंद, या किसी एकल कक्ष के भीतर से कई लगातार बयान मुद्रण। – beardc

उत्तर

0

अनंतिम जवाब (एक समाधान है कि शामिल नहीं करता है एक प्रमुख / प्राथमिकता दी जाएगी।): IPython automatically calls एक वस्तु अगर लाइन एक / साथ शुरू होता है, भले ही वह इंडेंट है:

def f(): 
    /print 'foo' 

f() 

प्रिंट foo

संपादित करें:

  1. IPython भी एक %autocall जादू समारोह है कि, ठीक है, स्वचालित रूप से %autocall 1 करने के बाद कार्यों कहता है, हां, अजगर 2.x में print की तरह एक सेल कृत्यों में print 3 टाइपिंग (हालांकि है दुर्भाग्यवश / जैसे फ़ंक्शन परिभाषाओं में काम नहीं करता है।

  2. इसके अलावा, चूंकि यह एक फ़ंक्शन है और कोई कथन नहीं है, तो आप बस p = print कर सकते हैं, इसलिए बाद में /p 'foo' कॉल आपको लगभग pdb-जैसा व्यवहार (कुछ मैं जा रहा था लेकिन यह स्पष्ट रूप से प्रश्न में नहीं बताया गया था) देता है।

1

IPython

के लिए कुछ सुझाव

from IPython.core.magic import register_line_magic 
@register_line_magic 
def p(line): 
    print(line) 
p "Hi" 

पर autocall साथ जादू परिभाषित के साथ जादू को परिभाषित करें autocall बंद

from IPython.core.magic import register_line_magic 
@register_line_magic 
def p(line): 
    print(eval(line)) 
%p "Again" 

आप बना सकते हैं एक .config/IPython/profile_default/स्टार्टअप/ऑटो आपके लिए लाइन जादू कार्यों के लिए print.py फ़ाइल।

संबंधित मुद्दे