पाइथोनिक का क्या अर्थ है? [बन्द है]


93

कई वेबसाइटों पर मैं अक्सर टिप्पणियां देखता हूं कि कोड पाइथोनिक नहीं है, या समान लक्ष्य को प्राप्त करने के लिए एक अधिक पाइथोनिक तरीका है।

इस संदर्भ में पाइथोनिक का क्या अर्थ है? उदाहरण के लिए, क्यों है

while i < someValue:
   do_something(list[i])
   i += 1

जबकि अजगर नहीं

for x in list:
   doSomething(x)

पायथोनिक है



यह एक ऑफ टॉपिक सवाल है। आप इसे विषय पर अधिक बनाने के लिए एक छोटा कोड नमूना प्रदान कर सकते थे।
— एलएसईएस

जवाबों:


104

स्पष्ट, संक्षिप्त और बनाए रखने वाले कोड का उत्पादन करने के लिए पायथन भाषा की विशेषताओं को उजागर करना।

पाइथोनिक का मतलब कोड है जो सिंटैक्स को सही नहीं करता है, लेकिन यह पायथन समुदाय की परंपराओं का पालन करता है और जिस तरह से इसका उपयोग करने का इरादा है, उस भाषा का उपयोग करता है।

अन्य उदाहरणों से लिंक किए गए लेख में, नकारात्मक उदाहरण द्वारा व्याख्या करना सबसे आसान है। कई अन्य भाषाओं के उपयोगकर्ता अक्सर अनचाहे कोड के उदाहरण आते हैं, जो पायथन प्रोग्रामिंग पैटर्न जैसे कि लिस्ट कॉम्प्रिहेंशन या जनरेटर एक्सप्रेशन सीखने के बजाय, आमतौर पर C या जावा में उपयोग किए जाने वाले पैटर्न में क्राउबर का प्रयास करते हैं। लूप विशेष रूप से इसके सामान्य उदाहरण हैं।

उदाहरण के लिए जावा में मैं उपयोग कर सकता हूं

for i in (i; i < items.length ; i++)
 {
  n = items[i];
 ... now do something
 }

पायथन में हम कोशिश करते हैं और लूप्स का उपयोग करते हुए इसे दोहरा सकते हैं, लेकिन इसका उपयोग करने के लिए क्लीनर होगा

for i in items:
  i.perform_action()

या, एक जनरेटर अभिव्यक्ति भी

(i.some_attribute for i in items)

इसलिए अनिवार्य रूप से जब कोई कहता है कि कुछ अस्वाभाविक है, तो वे कह रहे हैं कि कोड को इस तरह से फिर से लिखा जा सकता है जो कि अजगर की कोडिंग शैली के लिए बेहतर है।

import thisकमांड लाइन पर टाइप करना पायथन सिद्धांतों का सारांश देता है। कम अच्छी तरह से जाना जाता है कि स्रोत कोड import thisनिश्चित रूप से है, और डिजाइन के अनुसार, unpythonic! उदाहरण के लिए इसे देखिए कि क्या नहीं करना है।


27
Btw, "आयात यह" के लिए स्रोत कोड यहाँ है: github.com/python/cpython/blob/master/Lib/this.py
— गौतम

एक अलग क्षेत्र में एक उदाहरण क्या होगा? जैसे खाना पकाना, डिजाइन करना, गाड़ी चलाना ..?
— डैनियल स्प्रिंगर

2
कुछ और जटिल कोड के उदाहरण के लिए, विगेनियर सिफर के "अनहाइथोनिक" कार्यान्वयन को इस उत्तर में उत्तरोत्तर अधिक "पाइथोनिक" बनाया गया है (प्रकटीकरण: मेरा कोड और राय): stackoverflow.com/questions/2490334/…
— Nick

18
मुझे लगता है कि मुझे अपने उपयोगकर्ता नाम
— पायथोनिक

इसके अलावा शायद यह ध्यान देने योग्य है कि सामान्य शब्द "मुहावरेदार" है
— लुई मैडॉक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.