2015-08-20 11 views
35

print अजगर 2 में एक बयान हुआ करता था बिना प्रिंट, लेकिन अब यह एक समारोह है कि अजगर 3.अजगर 3 कोष्टक

में कोष्ठक की आवश्यकता है अजगर 3 में इन कोष्ठक को दबाने के लिए वहाँ वैसे भी है बन गया? शायद प्रिंट फ़ंक्शन को फिर से परिभाषित करके?

तो,

print ("Hello stack over flowers") 

के बजाय मैं टाइप कर सकते हैं:

print "Hello stack over flowers" 
+1

क्या कोई विशेष कारण है कि आप ऐसा करना चाहते हैं? या आप बस उत्सुक हैं?आमतौर पर कीवर्ड को फिर से परिभाषित करने के लिए यह अच्छा अभ्यास नहीं है, भले ही यह संभव हो। –

+2

जिज्ञासा से, लोग इसे वोट क्यों दे रहे हैं? मुझे समझ में नहीं आता कि यह एसओ दिशानिर्देशों के बाहर कैसे है। –

+0

आपको [इस एसओ क्यू/ए] में दिलचस्पी हो सकती है (http://stackoverflow.com/questions/214881/can-you-add-new-statements-to-pythons-syntax) –

उत्तर

1

नहीं। यही कारण है कि हमेशा पायथन 3. में एक सिंटैक्स त्रुटि हो जाएगा अजगर 3

करने के लिए अपने कोड का अनुवाद करने में 2to3 उपयोग करने पर विचार
+4

मैं पायथन 3 का उपयोग कर रहा हूं। मैं बस हर समय टाइपिंग कोष्ठक से बचना चाहता हूं। 'शिफ्ट '+' 9' ..... फिर फिर' शिफ्ट '+ '0' संपूर्ण है। – Laura

+0

क्षमा करें कि फ़ंक्शन कॉल आपके लिए टाइपिंग को कठिन बनाते हैं। मैं खुद को एक बहुत ही कठोर टाइपिस्ट हूं, भले ही मेरे पास कोई शारीरिक अक्षमता न हो, फिर भी मैं शिफ्ट की गई चाबियों के उपयोग को कम करने के लिए कर सकता हूं। – holdenweb

0

आप नहीं कर सकते हैं, क्योंकि एकमात्र तरीका आप बिना ब्रांड्स के कर सकते हैं, यह एक कीवर्ड है, जैसे कि पायथन 2। आप मैन्युअल रूप से किसी कीवर्ड को परिभाषित नहीं कर सकते हैं, इसलिए नहीं।

0

पायथन 3 में, प्रिंट एक फ़ंक्शन है, जबकि यह पिछले संस्करणों में एक कथन होता था। जैसा कि @holdenweb ने सुझाव दिया है, अपने कोड का अनुवाद करने के लिए 2to3 का उपयोग करें।

10

हालांकि आपको पाइथन 3 में प्रिंट करने के लिए कोष्ठक की एक जोड़ी की आवश्यकता है, लेकिन अब आपको print के बाद एक स्पेस की आवश्यकता नहीं है, क्योंकि यह एक फ़ंक्शन है। तो यह केवल एक अतिरिक्त चरित्र है।

यदि आपको अभी भी "अनावश्यक रूप से समय लेने वाली" होने के लिए ब्रांड्स की एक जोड़ी टाइपिंग मिलती है, तो आप p = print कर सकते हैं और इस तरह के कुछ अक्षर सहेज सकते हैं। क्योंकि आप कार्यों के लिए लेकिन कीवर्ड्स को नहीं नए संदर्भ बाध्य कर सकते हैं, आप केवल अजगर में इस print शॉर्टकट कर सकते हैं 3.

अजगर 2:

>>> p = print 
    File "<stdin>", line 1 
    p = print 
      ^
SyntaxError: invalid syntax 

अजगर 3:

>>> p = print 
>>> p('hello') 
hello 

यह आपके कोड को कम पठनीय बना देगा, लेकिन जब भी आप कुछ प्रिंट करेंगे तो आप उन कुछ पात्रों को सहेज लेंगे।

+0

धन्यवाद टाइगरहॉक 3। हां, यह समय बचाएगा, लेकिन जैसा कि आपने कहा था कि यह कोड को कम पठनीय बनाएगा। – Laura

+0

@ टाइगरहॉक यह कामकाज आईडीई –

+0

@ कंधराशेखर के साथ संगत नहीं है - क्या आईडीई? तुम्हारी किस बारे में बोलने की इच्छा थी? आईडीई की पसंद से प्रभावित होने का कोई कारण नहीं है। – TigerhawkT3

1

मैक्रो बनाने के लिए ऑटोहोटीकी का उपयोग करें। एएचके स्थापित करने के लिए स्वतंत्र और मृत सरल है। www.autohotkey.com

आप मैक्रो आवंटित कर सकते हैं करने के लिए, कहते हैं, आल्ट-पी:

!p::send print(){Left} 

कि आल्ट-पी कर देगा प्रिंट() बाहर रख दिया और कोष्ठक के अंदर करने के लिए अपने कर्सर ले जाने के।

या, और भी बेहतर, के लिए सीधे आपकी समस्या का समाधान, आप एक autoreplace को परिभाषित करने और जब फ़ाइल खोलने .py एक्सटेंशन है करने के लिए अपने दायरा सीमित:

#IfWinActive .py   ;;; scope limiter 
:b*:print ::print(){Left} ;;; I forget what b* does. The rest should be clear 
#IfWinActive    ;;; remove the scope limitation 

यह एक गारंटी, दर्द रहित है, पारदर्शी समाधान।

0

एएचके स्क्रिप्ट एक अच्छा विचार है। बस दिलचस्पी रखने वालों के लिए मुझे इसे मेरे लिए काम करने के लिए थोड़ा सा बदलने की जरूरत है:

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 
संबंधित मुद्दे