पायथन पीईपी -8 इंडेंटेशन के लिए टैब पर स्थानों की दृढ़ता से अनुशंसा क्यों करता है?


146

मैं स्टैक ओवरफ्लो और पीईपी 8 पर देखता हूं कि सिफारिश केवल पायथन कार्यक्रमों में इंडेंटेशन के लिए रिक्त स्थान का उपयोग करने के लिए है। मैं लगातार मांग की जरूरत को समझ सकता हूं और मैंने उस दर्द को महसूस किया है।

क्या रिक्त स्थान को प्राथमिकता देने का एक अंतर्निहित कारण है? मुझे लगता है कि टैब के साथ काम करना कहीं अधिक आसान था।


7
जानने के लिए PEP चर्चा पढ़ें।
ई-सतीस

106
1 इंडेंटेशन का स्तर है ... 1. एन स्पेस का उपयोग करने पर सहमत होना पूरी तरह से अतार्किक है जब आप सभी एक टैब का उपयोग कर सकते हैं। जो, वैसे, वास्तव में ऐसा करने के लिए है। इंडेंट। एक बार। इंडेंटेशन का 1 स्तर = 1 एकल वर्ण, अर्थात 1 एकल टैब। और वे अधिक उपयोगी होते हैं क्योंकि प्रत्येक कोडर स्वतंत्र रूप से चुन सकता है कि इसे कैसे कल्पना करें। रिक्त स्थान का उपयोग करना गूंगा है, मैंने कभी भी इसके लिए एक भी तर्क नहीं देखा है जो गैर बेवकूफ है।
ओ ० '।

31
@BlueBomber और जब आप इस पर हों तो आप लोगों को फ़ॉन्ट आकार और रंग योजना पसंद करने के लिए मजबूर क्यों नहीं करते? फिर भी मूर्ख है।
ओ ० '।

10
@BlueBomber नहीं, नहीं, यह बिल्कुल गैरबराबरी के स्तर पर है।
ओ ० '।

9
@BlueBomber वास्तव में क्या अंतर है? आप किसी भी ध्यान देने योग्य लाभ को प्राप्त किए बिना अपने वातावरण के दूसरे विकासक विन्यास में स्वतंत्रता की एक डिग्री को कम कर रहे हैं। यदि आप एक तानाशाह बनना चाहते हैं और सभी को 2 या 4 या 29 स्थानों के अनुरुप कोड को देखने के लिए मजबूर कर सकते हैं, तब भी आप टैब के साथ ऐसा कर सकते हैं। बस अपनी पसंद को अपनी आईडीई सेट करने के लिए अपने पसंदीदा स्थानों के अनुरूप टैब प्रदर्शित करने के लिए कहें। यदि आपके पास ऐसा करने का अधिकार नहीं है, तो हो सकता है कि आप उन्हें खुद तय करने दें कि उनकी आंखों के लिए इंडेंटेशन की इकाई कितनी विस्तृत है।
असद सईदुद्दीन

जवाबों:


111

पीईपी [एड: में यह जवाब दिया गया था। इस पास को 2013 में संपादित किया गया था ]। मैं उद्धृत करता हूं:

सबसे लोकप्रिय अजगर इंडेंट के रास्ते केवल रिक्त स्थान के साथ है।

आपको किस अन्य अंतर्निहित कारण की आवश्यकता है?

इसे कम स्पष्ट रूप से रखने के लिए: पीईपी के दायरे पर भी ध्यान दें, जैसा कि पहले पैराग्राफ में बताया गया है:

यह दस्तावेज़ पायथन कोड के लिए कोडिंग कन्वेंशन देता है जिसमें मुख्य पायथन वितरण में मानक पुस्तकालय शामिल है।

इरादा सभी कोड बनाने का है जो आधिकारिक अजगर वितरण में लगातार स्वरूपित होते हैं (मुझे आशा है कि हम सहमत हो सकते हैं कि यह सार्वभौमिक रूप से एक अच्छा थिंग ™ है)।

चूंकि किसी व्यक्ति प्रोग्रामर के लिए रिक्त स्थान और टैब के बीच का निर्णय क) वास्तव में स्वाद और बी का मामला है) तकनीकी साधनों (संपादकों, रूपांतरण लिपियों, आदि) द्वारा आसानी से निपटा जाता है, सभी चर्चा को समाप्त करने का एक स्पष्ट तरीका है: एक का चयन करें ।

गुइडो को चुनने वाला था। उसे भी कोई कारण नहीं देना था, लेकिन उसने फिर भी अनुभवजन्य आंकड़ों का हवाला देकर किया।

अन्य सभी उद्देश्यों के लिए आप या तो इस पीईपी को एक सिफारिश के रूप में ले सकते हैं, या आप इसे अनदेखा कर सकते हैं - अपनी पसंद, या अपनी टीम के, या अपनी टीम के नेताओं को।

लेकिन अगर मैं आपको एक सलाह दे सकता हूं: मिक्स मीम ;-) [संपादित करें] टैब और स्पेस को मिलाना अब कोई विकल्प नहीं है।]


11
माना। ताल बनाम X रिक्त स्थान बनाम Y रिक्त स्थान से अधिक महत्वपूर्ण है।
माइक क्लार्क

10
मुझे आश्चर्य होता है ... मानक पुस्तकालय में इतने सारे मिश्रित विधि के नाम क्यों हैं?
काइल वाइल्ड

6
@ डॉर्किट्यूड: a) कोई भी परफेक्ट नहीं है। b) ऐतिहासिक कारण।

8
तो फिर पीईपी -8 से पहले इतने सारे प्रोग्रामर ने स्पेस का इस्तेमाल क्यों किया? यही मैं वास्तव में जानना चाहता हूं। टैब के फायदे मुझे स्पष्ट प्रतीत होते हैं, लेकिन रिक्त स्थान नहीं।
आइंस्टीन


95

अच्छी तरह से, ऐसा लगता है जैसे हर कोई रिक्त स्थान के प्रति दृढ़ता से पक्षपाती है। मैं विशेष रूप से टैब का उपयोग करता हूं। मुझे अच्छी तरह पता है कि क्यों।

टैब्स वास्तव में एक शांत आविष्कार है, जो बाद में आया रिक्त स्थान के । यह आपको लाखों बार अंतरिक्ष को धक्का दिए बिना या एक नकली टैब का उपयोग करने के लिए प्रेरित करने की अनुमति देता है (जो रिक्त स्थान पैदा करता है)।

मुझे वास्तव में नहीं मिलता कि हर कोई टैब के उपयोग में भेदभाव क्यों कर रहा है। यह बहुत पुराने लोगों की तरह है, जो नए लोगों को नई तकनीक का चयन करने के लिए भेदभाव करते हैं और शिकायत करते हैं कि इन फैंसी नए लोगों पर ही नहीं, बल्कि हर फोन पर पल्स डायलिंग काम करती है। "टोन डायलिंग हर फोन पर काम नहीं करती है, इसीलिए यह गलत है"।

आपका संपादक टैब को ठीक से नहीं संभाल सकता है? खैर, एक आधुनिक संपादक प्राप्त करें । शायद समय हो सकता है, हम अब 21 वीं सदी में हैं और वह समय जब एक संपादक एक उच्च तकनीक का जटिल सॉफ्टवेयर था, जो लंबे समय तक चलता है। अब हमारे पास चुनने के लिए कई टन और संपादक हैं, जो सभी टैब का समर्थन करते हैं। इसके अलावा, आप परिभाषित कर सकते हैं कि टैब कितना होना चाहिए, एक ऐसी चीज़ जो आप रिक्त स्थान के साथ नहीं कर सकते। टैब नहीं देख सकते हैं? एक तर्क के लिए वह क्या है? खैर, आप रिक्त स्थान नहीं देख सकते हैं!

क्या मैं बेहतर संपादक पाने के लिए सुझाव देने के लिए इतना बोल्ड हो सकता हूं? इन उच्च तकनीक वाले में से एक, जो कुछ 10 साल पहले ही जारी किए गए थे, जो अदृश्य अक्षर प्रदर्शित करते हैं ? (कटाक्ष बंद)

रिक्त स्थान का उपयोग बहुत अधिक हटाने और स्वरूपण कार्य का कारण बनता है। यही कारण है कि (और अन्य सभी लोग जो इसे जानते हैं और मेरे साथ सहमत हैं) पायथन के लिए टैब का उपयोग करते हैं।

टैब और स्पेस को मिलाना एक नो-नो और उस बारे में कोई तर्क नहीं है। यह एक गड़बड़ है और कभी काम नहीं कर सकता।


26
इसे जोड़ने के लिए, अपने कीबोर्ड पर एक नज़र डालें, TAB कुंजी का प्रतीक स्पष्ट रूप से इंडेंटेशन को चित्रित करता है - यह कुंजी का इंडेंटेड उद्देश्य है SPACE का नहीं। PEP8 रिक्त स्थान का उपयोग करने की सिफारिश करता है IMHO एक गलती है, लेकिन यह सिर्फ एक सिफारिश है - en.wikipedia.org/wiki/Tab_character#Tab_characters
डैनियल सोकोलोस्की

29
इस पोस्ट से पूरी तरह सहमत हैं। रिक्त स्थान का उपयोग करना मूर्खों के लिए है, जो इंडेंटेशन त्रुटियों से उन 1 स्थान पर ट्रिप किए जाने का आनंद लेते हैं। यदि आपका इंडेंटेशन 1 टैब से बंद था, तो मैं गारंटी देता हूं कि आप इसे नोटिस करेंगे।
सेपरो

12
@Zingham कोई भी विशेष रूप से टैब का उपयोग नहीं कर सकता: टैब और रिक्त स्थान हमेशा संयोजन में उपयोग किए जाते हैं और इससे असंगतता होती है। मैं और हजारों अन्य हर दिन उनका लगातार उपयोग कर रहे हैं। इंडेंटेशन के लिए टैब, संरेखण के लिए रिक्त स्थान। वास्तव में इस अवधारणा का कौन सा हिस्सा आपको बहुत मुश्किल से समझ में आता है, और आप क्यों आश्वस्त हैं कि इसे लगातार लागू करना असंभव है?
विरोध किया

1
टैब के साथ वास्तविक समस्या यह है कि आप टिप्पणी के तहत एक ही PEP8 द्वारा सुझाए गए सटीक संकेत प्राप्त नहीं कर सकते हैं "# ओपनिंग सीमांकक के साथ संकलित।" यह केवल रिक्त स्थान को पसंद करने का कारण है: इंडेंटेशन को सही करने के लिए!
user541905

2
सवाल है "पायथन पेप -8 इंडेंटेशन के लिए टैब पर स्थानों की दृढ़ता से अनुशंसा क्यों करता है?" । यह उत्तर पीईपी 8 के बारे में कभी भी उल्लेख नहीं करता है। ||| प्रश्न का उत्तर देने की कोशिश करने के बजाय ... यह उत्तर मेरे लिए एक मुख्य कृपालु राय के रूप में कृपालु है । 276 शब्द कहते हैं कि "टैब रिक्त स्थान से बेहतर हैं और यहाँ क्यों ..." हैं।
ट्रेवर बॉयड स्मिथ

43

मैं व्यक्तिगत रूप से टैब पर रिक्त स्थान से सहमत नहीं हूं। मेरे लिए, टैब एक डॉक्यूमेंट लेआउट कैरेक्टर / मैकेनिज्म है, जबकि स्पेस कोड के मामले में कमांड्स के बीच कंटेंट या डेलीनेशन के लिए हैं।

मुझे जिम की टिप्पणियों से सहमत होना होगा कि टैब वास्तव में मुद्दा नहीं है, यह लोग हैं और वे टैब और स्पेस को कैसे मिलाना चाहते हैं।

उस ने कहा, मैंने खुद को सम्मेलन के लिए रिक्त स्थान का उपयोग करने के लिए मजबूर किया है। मैं व्यक्तिगत प्राथमिकता पर स्थिरता को महत्व देता हूं।


3
मैंने अपने आप को रिक्त स्थान का उपयोग करने के लिए मजबूर करने की कोशिश की, लेकिन संपादक (कम से कम ग्रहण + प्यदेव) बुद्धिमान टैब जीतता है खासकर यदि आप अदृश्य पात्रों को सक्षम करते हैं। और मैं आसानी से 4, 8, 6 स्थानों को नेत्रहीन रूप से टैब सेट कर सकता हूं। इसलिए मेरे कोड में कम से कम मैं व्यक्तिगत वरीयता को महत्व देता हूं, और यदि मौजूदा कोड बेस में स्थापित कन्वेंशन है तो रिक्त स्थान पर रहें।
डैनियल सोकोलोव्स्की

2
जब तक आप किसी टीम में कोडिंग नहीं करते तब तक यह ठीक है। एक बार जब आप किसी टीम में होते हैं, तो आप एक ही सम्मेलन में सहमत होते हैं और उससे चिपके रहते हैं।
सोवियत संघ

1
@ शोविट जो ज्यादातर मुझे इच्छाधारी सोच की तरह लगता है। मेरे द्वारा कभी भी सभी टीमों में, आधिकारिक पार्टी लाइन "रिक्त स्थान का उपयोग करें" थी। वास्तविकता यह थी कि वस्तुतः हर फाइल टैब और स्पेस दोनों की कुल गड़बड़ी थी, और यहां तक ​​कि उन फाइलों में भी जो लगातार केवल स्पेस या केवल टैब का उपयोग करती थीं, इंडेंटेशन अभी भी सभी जगह था।
antred

हाँ, लेकिन मेरा यही मतलब है। कुछ आम सहमति अंततः पहुँच जाती है और लागू हो जाती है। जैसा आपने कहा, यह आमतौर पर "बस रिक्त स्थान का उपयोग करें" है।
सोवियुत

यह मुख्य कारण है कि मैं टैब पसंद करता हूं। यह सिर्फ लेआउट और शब्द के परिसीमन के लिए अलग-अलग वर्ण रखने के लिए समझ में आता है
woojoo666

31

रिक्त स्थान का कारण यह है कि टैब वैकल्पिक हैं। विराम चिह्नों में वास्तविक निम्नतम-सामान्य भाजक हैं।

हर सभ्य टेक्स्ट एडिटर में "स्पेस के साथ टैब बदलें" और कई लोग इसका उपयोग करते हैं। लेकिन हमेशा नहीं।

हालांकि कुछ पाठ संपादक टैब के साथ रिक्त स्थान की एक रन की जगह ले सकते हैं, यह वास्तव में दुर्लभ है।

जमीनी स्तर । आप रिक्त स्थान के साथ गलत नहीं कर सकते। आप टैब के साथ गलत हो सकते हैं। इसलिए टैब का उपयोग न करें और गलतियों का जोखिम कम करें।


15
मैं कभी भी गलत तरीके से कुछ करने की कसम नहीं खाऊंगा क्योंकि बहुत सारे अन्य (लोग, टेक्स्ट एडिटर इत्यादि) भी यह गलत तरीका है। 2015 में, एक टेक्स्ट एडिटर जो टैब को अच्छी तरह से हैंडल नहीं करता है, कचरा पात्र में होता है।
एंटी

2
"आप रिक्त स्थान के साथ गलत नहीं कर सकते। आप टैब के साथ गलत हो सकते हैं"। मैंने पाया है कि 100% topsy-turvy गलत है। मेरे अनुभव में: "आप टैब्स के साथ गलत नहीं जा सकते। आप रिक्त स्थान के साथ गलत हो सकते हैं" ... खासकर जब कोड साझा करना।
cmroanirgo

5
तो किसी ने अंत में यह कहा है: रिक्त स्थान का उपयोग करें क्योंकि यह सबसे कम आम भाजक है। इसी नियम ने हमें सरकारी कार्यालयों में MBR, BIOS, और पेपर फॉर्म पर पकड़ बनाने के लिए प्रेरित किया है। सिवाय इसके कि इनमें वास्तव में वैचारिक समस्याएं हैं, जबकि टैब बनाम रिक्त स्थान 100% बेवकूफ उपयोगकर्ता समस्या है।
मिलिंद आर

1
यह मुझे एक Argumentum ad populum प्रतीत होता है: एक तर्कपूर्ण निष्कर्ष जो यह निष्कर्ष निकालता है कि एक प्रस्ताव सत्य है क्योंकि कई या अधिकांश लोग इसे मानते हैं। क्योंकि हर एडिटर टैब को स्पेस से बदल सकता है तो स्पेस सही विकल्प है एक परेसानी है !!
जिंजु

28

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

यदि आप PEP 8 को परिभाषित करने और टैब का उपयोग करने पर जोर देते हैं - या इससे भी बदतर, टैब और रिक्त स्थान को मिलाकर - कम से कम हमेशा '-tt' तर्क के साथ अजगर चलाएं, जो असंगत इंडेंटेशन बनाता है (कभी-कभी एक टैब, कभी-कभी एक ही इंडेंटेशन के लिए एक स्थान) स्तर) एक त्रुटि। इसके अलावा, यदि संभव हो, तो टैब को अलग तरीके से प्रदर्शित करने के लिए अपने संपादक को सेट करें। लेकिन वास्तव में, सबसे अच्छा तरीका टैब, अवधि का उपयोग नहीं करना है।


43
यह सच है कि टैब अदृश्य हैं और लोग टैब की चौड़ाई पर सहमत नहीं हो सकते हैं। लेकिन रिक्त स्थान के लिए भी यही सच है। जब आप टैब और स्पेस मिक्स करते हैं, तो चीजें गलत हो जाती हैं। लेकिन आप उस स्थिति को टैब पर क्यों दोष दे रहे हैं और रिक्त स्थान नहीं?
जिम

47
नहीं, रिक्त स्थान के लिए समान नहीं है। लोग रिक्त स्थान की चौड़ाई पर सहमत हो सकते हैं।
बजे राफेल डाउगर्ड

32
एक एकल स्थान हमेशा एक ही चौड़ाई हो सकता है, लेकिन रिक्त स्थान के साथ इंडेंटेशन हमेशा एक ही चौड़ाई नहीं है। मैं यह देखने में विफल हूं कि टैब n रिक्त स्थान का उपयोग करने के लिए सहमत होना किसी भी रिक्त स्थान के साथ सहमति देने के लिए अलग है।
जिम

26
हां, मुझे पता है कि दोनों को मिलाने में दिक्कतें आ सकती हैं। मुझे समझ में नहीं आता है कि कुछ लोग टैब पर दोष क्यों देते हैं। समस्या उन्हें मिला रही है, विशेष रूप से टैब नहीं। आप स्थान को टैब के साथ बदलकर समस्या को हल कर सकते हैं, लेकिन आप टैब के साथ रिक्त स्थान को बदलकर भी समस्या को हल कर सकते हैं।
जिम

70
और नहीं, अगर मैं 8-वाइड टैब का उपयोग करता हूं और आप 6-वाइड टैब का उपयोग करते हैं, और हम कोड साझा करते हैं, तो यह गड़बड़ नहीं होता है। यह अजगर अजगर दुभाषिया के लिए सिर्फ एक टैब है।
जिम

22

इंडेंटेशन के साथ मुख्य समस्याएं तब होती हैं जब आप टैब और रिक्त स्थान को मिलाते हैं। स्पष्ट रूप से यह आपको नहीं बताता है कि आपको किसका चयन करना चाहिए, लेकिन एक की सिफारिश करने का यह एक अच्छा कारण है, भले ही आप इसे एक सिक्का उछालकर चुनते हैं।

हालांकि, IMHO टैब पर रिक्त स्थान का पक्ष लेने के लिए कुछ मामूली कारण हैं:

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

  • प्रोग्रामर स्रोत को अलग तरह से देखते हैं। यह गहराई से व्यक्तिपरक है - इसके या तो टैब का मुख्य लाभ, या एक कारण है कि आप उन्हें किस पक्ष पर निर्भर करते हैं। दूसरी तरफ, डेवलपर्स स्रोत को अपने पसंदीदा इंडेंटेशन के साथ देख सकते हैं, इसलिए 2-स्पेस इंडेंट पसंद करने वाला एक डेवलपर उसी स्रोत पर 8-स्पेस डेवलपर के साथ काम कर सकता है और फिर भी जैसा चाहे वैसा ही देख सकता है। नकारात्मक पक्ष यह है कि इसमें कुछ नतीजे हैं - कुछ लोगों को 8-स्पेस पसंद है क्योंकि यह बहुत दृश्य प्रतिक्रिया देता है कि वे बहुत गहराई से नेस्टेड हैं - वे 2-इंडेंट द्वारा चेक किए गए कोड को अपने संपादक में लगातार लपेटकर देख सकते हैं। हर डेवलपर के पास कोड को उसी तरह से देखने पर अधिक स्थिरता वाली wrt लाइन की लंबाई होती है, और अन्य मामले भी।

  • निरंतर लाइन इंडेंटेशन। कभी-कभी आप यह इंगित करने के लिए एक पंक्ति को इंडेंट करना चाहते हैं कि यह पिछले एक से किया गया है। जैसे।

    def foo():
        x = some_function_with_lots_of_args(foo, bar, baz,
                                            xyzzy, blah)

    यदि टैब का उपयोग करते हैं, तो रिक्त स्थान और टैब को मिलाए बिना अपने संपादक में विभिन्न टैबस्टॉप का उपयोग करने वाले लोगों के लिए इसे संरेखित करने का कोई तरीका नहीं है। यह उपरोक्त लाभ को प्रभावी ढंग से मारता है।

जाहिर है, हालांकि, यह एक गहरा धार्मिक मुद्दा है, जो प्रोग्रामिंग से ग्रस्त है। सबसे महत्वपूर्ण मुद्दा यह है कि हमें एक चुनना चाहिए - भले ही वह आपके अनुकूल न हो। कभी-कभी मुझे लगता है कि महत्वपूर्ण इंडेंटेशन का सबसे बड़ा फायदा यह है कि कम से कम हम ब्रेस प्लेसमेंट फ्लैमर को बख्शते हैं।

पढ़ने के लायक भी इस मुद्दे पर जेमी Zawinski द्वारा लेख है।


3
संरेखण यद्यपि तुच्छ है। मैं बस एक ब्लॉक की तरह कोष्ठक का उपयोग करता हूं और प्रत्येक arg को इंडेंट करता हूं। इसके अलावा, आपके उदाहरण में आप बहुत अच्छी तरह से रिक्त स्थान का उपयोग कर सकते हैं क्योंकि आप एक तर्क सूची के अंदर हैं और आप जितने चाहें उतने स्थान रिक्त कर सकते हैं।
सोवियुत 16:09

3
@ शोविट: यदि आप रिक्त स्थान के साथ इंडेंट करते हैं, तो जैसे ही इसे अलग टैब आकार के साथ देखा जाता है, संरेखण गड़बड़ हो जाता है। इसे संरक्षित करने का एकमात्र तरीका इंडेंट स्तर तक टैब का उपयोग करना है, और फिर बाकी के लिए रिक्त स्थान - यानी रिक्त स्थान और टैब को मिलाएं, जिससे इसकी अपनी समस्याएं हो सकती हैं।
ब्रायन

हाँ, यही वजह है कि मैं सिर्फ अपने तर्कों पर ब्लॉक इंडेंटिंग के अजगर सम्मेलन का उपयोग करते हैं। निश्चित रूप से, वे खुले ब्रेस के साथ लाइन नहीं कर सकते हैं, लेकिन यह अभी भी स्पष्ट है कि वे किस लाइन या कमांड के हैं। JQuery सिंटैक्स एक समान सिद्धांत पर काम करता है।
सोविअट

2
@Brian: मैं नहीं देखता कि कैसे किसी भी समस्याओं की ओर जाता है। यह बिल्कुल सही तरीका है, इंडेंटेशन के लिए टैब, संरेखण के लिए रिक्त स्थान। यह इंडेंटेशन के लिए रिक्त स्थान और टैब को मिलाने के समान नहीं है ।
एंटी फेरी

1
@CoreDumpError उह नहीं, यह निश्चित रूप से नहीं करता है। मुझे पता है कि क्योंकि पायथन 3 मेरी किसी भी स्क्रिप्ट के बारे में कभी शिकायत नहीं करता है, और मैं सभी शापित समय को संरेखित करने के लिए इंडेंटेशन / स्पेस के लिए टैब का उपयोग करता हूं। इसके अलावा, PEP8 कुछ भी "मना" नहीं कर सकता है, क्योंकि यह केवल एक सिफारिश है (और मेरी राय में एक संक्षिप्त है)।
antred

12

ध्यान दें कि टैब का उपयोग PEP 8 के एक अन्य पहलू को भ्रमित करता है:

सभी लाइनों को अधिकतम 79 वर्णों तक सीमित करें।

मान लीजिए कि, काल्पनिक रूप से, आप 2 की टैब चौड़ाई का उपयोग करते हैं और मैं 8 की टैब चौड़ाई का उपयोग करता हूं। आप अपना सभी कोड लिखते हैं ताकि आपकी सबसे लंबी रेखा 79 वर्णों तक पहुंच जाए, फिर मैं आपकी फ़ाइल पर काम करना शुरू करता हूं। अब मुझे हार्ड-टू-रीड कोड मिल गया है क्योंकि (पीईपी राज्यों के रूप में):

अधिकांश टूल में डिफ़ॉल्ट रैपिंग कोड की दृश्य संरचना को बाधित करती है

यदि हम सभी 4 रिक्त स्थान का उपयोग करते हैं, तो यह समान है। कोई भी जिसका संपादक 80 वर्ण की चौड़ाई का समर्थन कर सकता है, आराम से कोड पढ़ सकता है। नोट: 80 वर्ण की सीमा अपने आप में एक पवित्र युद्ध है, इसलिए आइए इसे यहां शुरू न करें।

किसी भी गैर-चूसने वाले संपादक के पास रिक्त स्थान का उपयोग करने का एक विकल्प होना चाहिए जैसे कि वे टैब थे (डालने और हटाने दोनों), ताकि वास्तव में एक वैध तर्क न हो।


7

प्रश्न का उत्तर है: PEP-8 एक सिफारिश करना चाहता है और यह तय किया है कि चूंकि रिक्त स्थान अधिक लोकप्रिय हैं, इसलिए यह टैब पर स्थानों की दृढ़ता से अनुशंसा करेगा।


PEP-8 पर नोट्स

PEP-8 कहता है 'इंडेंटेशन स्तर पर 4 रिक्त स्थान का उपयोग करें।'
यह स्पष्ट है कि यह मानक सिफारिश है।

'वास्तव में पुराने कोड के लिए जिसे आप गड़बड़ नहीं करना चाहते हैं, आप 8-स्पेस टैब का उपयोग करना जारी रख सकते हैं।'
यह स्पष्ट है कि टैब का उपयोग किए जाने पर कुछ परिस्थितियां हैं।

'कभी भी टैब और स्पेस को मिक्स न करें।'
यह मिश्रण का एक स्पष्ट निषेध है - मुझे लगता है कि हम सभी इस पर सहमत हैं। पायथन इस और अक्सर चोटों का पता लगा सकता है। -Tt तर्क का उपयोग करने से यह स्पष्ट त्रुटि हो जाती है।

पायथन को इंडेंट करने का सबसे लोकप्रिय तरीका केवल रिक्त स्थान है। दूसरा सबसे लोकप्रिय तरीका केवल टैब के साथ है। '
यह स्पष्ट रूप से बताता है कि दोनों का उपयोग किया जाता है। बस अति स्पष्ट होने के लिए: आपको अभी भी एक ही फ़ाइल में रिक्त स्थान और टैब को कभी नहीं मिलाना चाहिए।

'नई परियोजनाओं के लिए, केवल टैब पर रिक्त स्थान की दृढ़ता से अनुशंसा की जाती है।'
यह एक स्पष्ट सिफारिश है, और एक मजबूत है, लेकिन टैब का निषेध नहीं है।


मुझे PEP-8 में अपने स्वयं के प्रश्न का एक अच्छा जवाब नहीं मिल रहा है। मैं टैब का उपयोग करता हूं, जिसे मैंने अन्य भाषाओं में ऐतिहासिक रूप से उपयोग किया है। अजगर टैब के अनन्य उपयोग के साथ स्रोत को स्वीकार करता है। मेरे लिए यह काफी अच्छा है।

मैंने सोचा कि मैं रिक्त स्थान के साथ काम करूंगा। मेरे संपादक में, मैंने विशेष रूप से रिक्त स्थान का उपयोग करने के लिए एक फ़ाइल प्रकार को कॉन्फ़िगर किया है और अगर मैं टैब दबाता हूं तो यह 4 स्थान सम्मिलित करता है। यदि मैं कई बार टैब दबाता हूं, तो मुझे रिक्त स्थान हटाना होगा! अरे! चार बार टैब के रूप में कई हटाता है! मेरा संपादक यह नहीं बता सकता है कि मैं इंडेंट्स के लिए 4 रिक्त स्थान का उपयोग कर रहा हूं (हालांकि एएन संपादक ऐसा करने में सक्षम हो सकता है) और स्पष्ट रूप से एक समय में रिक्त स्थान को हटाने पर जोर देता है।

जब इसके रीडिंग इंडेंटेशन के लिए पायथन को एन रिक्त स्थान होने पर विचार करने के लिए नहीं कहा जा सकता है? अगर हम 4 स्थानों पर प्रति इंडेंटेशन और 4 स्पेस प्रति टैब पर सहमत हो सकते हैं और पायथन को यह स्वीकार करने की अनुमति देते हैं, तो कोई समस्या नहीं होगी।
हमें समस्याओं के समाधान के लिए जीत हासिल करनी चाहिए।


1
आप किस संपादक का उपयोग कर रहे हैं? मेरे द्वारा उपयोग किए जाने वाले अधिकांश में बैकस्पेस (उदाहरण के लिए इस तरह व्यवहार करता है) पर समर्पण करने का एक विकल्प होता है, भले ही इंडेंटिंग के कार्यान्वयन के बावजूद।
ब्रायन

आप सही हैं - मुझे बैकस्पेस पर समर्पण करने का विकल्प नहीं दिखता है, लेकिन आप शायद इसके बजाय शिफ्ट-टैब का उपयोग कर सकते हैं या इसके बजाय इंडेंट (सीटीएल-शिफ्ट-आई) को कम कर सकते हैं।
ब्रायन

मैं सिर्फ PyScripter की कोशिश कर रहा हूँ जो रिक्त स्थान का उपयोग करते समय बेहतर लगता है जब आप टैब दबाते हैं और 4 को हटाते हैं जब आप बैकस्पेस दबाते हैं।
quamrana

28
"मुझे रिक्त स्थान को हटाना है! अर्घ! चार बार टैब के रूप में हटाए जाते हैं!" - यह एकमात्र कारण है कि मैं हर चीज के लिए टैब का उपयोग करता हूं, और मुझे लगता है कि जो लोग स्पेस का उपयोग करते हैं वे पागल हैं। :) मुझे कभी समस्या नहीं हुई, सिवाय इसके कि जब मैं रिक्त स्थान का उपयोग करने वाले वेब से कुछ पेस्ट करता हूं। फिर एक साधारण खोज-प्रतिस्थापित फिक्स करता है।
Aphex

3

मैंने हमेशा अपने कोड में टैब का उपयोग किया है। उस ने कहा, मुझे हाल ही में रिक्त स्थान का उपयोग करने का एक कारण मिला है: जब मेरे नोकिया N900 इंटरनेट टैबलेट पर विकास हो रहा था, तो मेरे पास अब एक टैब कुंजी के बिना एक कीबोर्ड था। इसने मुझे या तो टैब कॉपी और पेस्ट करने या रिक्त स्थान के साथ अपना कोड लिखने के लिए मजबूर किया। मैं अन्य फोन के साथ एक ही समस्या में चला गया हूं। दी, यह पायथन का एक मानक उपयोग नहीं है, लेकिन कुछ को ध्यान में रखना है।


2

JWZ इसे सबसे अच्छा कहता है :

जब [लोग] कोड पढ़ रहे होते हैं, और जब वे नया कोड लिखते हैं, तो वे इस बात की परवाह करते हैं कि कितने स्क्रीन कॉलम हैं जिनके द्वारा कोड एक नया स्कोप (या सेक्सप्रॉप, या जो कुछ भी) खुलने पर इंडेंट करता है ...

... मेरी राय है कि तकनीकी मुद्दों को हल करने का सबसे अच्छा तरीका यह है कि एएससीआईआई # 9 टीएबी चरित्र कभी भी डिस्क फ़ाइलों में दिखाई नहीं देता है: डिस्क पर लाइनों को लिखने से पहले एक उपयुक्त संख्या में टीएबी का विस्तार करने के लिए अपने संपादक को प्रोग्राम करें। ..

... यह मानता है कि आप कभी भी उन स्थानों पर टैब का उपयोग नहीं करते हैं जहां वे वास्तव में महत्वपूर्ण हैं, जैसे कि स्ट्रिंग या वर्ण स्थिरांक, लेकिन मैं ऐसा कभी नहीं करता: जब यह मायने रखता है कि यह एक टैब है, तो मैं हमेशा इसके बजाय '\ t' का उपयोग करता हूं।


10
मैं इसके विपरीत काम करूंगा: टैब में इंडेंटेशन के लिए एक अर्थपूर्ण अर्थ होता है, इसलिए टैब को संग्रहीत और रिक्त स्थान प्रदर्शित करने के लिए अधिक संवेदनशील होता है। उपयोगकर्ता एक स्वरूपण शैली चुन सकता है और संपादक तदनुसार टैब का विस्तार करेगा।
अकीरोस

1
आपके पास अभी भी मिश्रित टैब और रिक्त स्थान की समस्या है, साथ ही एक लेखक प्रति टैब 1 कॉलम का उपयोग कर रहा है और 4+ बार इंडेंट कर रहा है, जो प्रत्येक टैब चरित्र को 4 कॉलम चौड़ा प्रदर्शित करने के लिए सेट किए गए टेक्स्ट एडिटर में पागल दिखाई देगा। इंडेंटेशन के लिए टैब्स एक वेरिएबल-चौड़ाई वाले टेक्स्ट एडिटर में सबसे अधिक समझ में आता है, जैसे प्रॉपर-स्पॉन्टेड फॉन्ट्स का इस्तेमाल करते हुए वर्ड प्रोसेसर। निश्चित-चौड़ाई वाले पाठ संपादक के साथ ऐसा नहीं है।
मार्क सिडेड

2
नहीं, मेरा अर्थ था कि एक टेक्स्ट एडिटर को भाषा के व्याकरण को पार्स करने में सक्षम होना चाहिए और यह समझना चाहिए कि एक सारणीयन कब हो रहा है, ताकि टैब का उपयोग केवल स्वरूपण के रूप में किया जा सके और इंडेंटेशन के लिए रिक्त स्थान का उपयोग करने की आवश्यकता न हो। "टैब" को एक निश्चित चौड़ाई की आवश्यकता नहीं है, और मुझे आमतौर पर शर्मनाक लगता है कि आज की तकनीकों (जैसे मशीन सीखने) के साथ, प्रारूपण अभी भी प्रोग्रामर के लिए एक समस्या है। सब कुछ स्वचालित होना चाहिए और यह स्वचालित और पारदर्शी होना चाहिए।
अकीरोस सेप

मैं यह नहीं देख सकता कि यह कैसे समझ पाएगा।
मार्क सिडेड

1

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

हालांकि, अजगर के पास चीजों को करने का केवल एक तरीका होने का एक मजबूत दर्शन है, इसलिए इंडेंटेशन करने के लिए एक तरह से आधिकारिक सिफारिश होनी चाहिए।

रिक्त स्थान के रूप में एक संपादक के लिए रिक्त स्थान और टैब दोनों ही अद्वितीय चुनौतियों का सामना करते हैं। टैब की हैंडलिंग स्वयं संपादकों या उपयोगकर्ता सेटिंग्स में समान नहीं है। चूंकि रिक्त स्थान कॉन्फ़िगर करने योग्य नहीं हैं, इसलिए वे अधिक तार्किक पसंद करते हैं क्योंकि वे गारंटी देते हैं कि परिणाम हर जगह समान दिखाई देगा।


8
और जब से हर संपादक ने अपनी रंग योजना को चुना है, क्या आपको लगता है कि उन्हें भी रंग योजना का उपयोग करना चाहिए?
ओ ० '।

8
हां, लेकिन क्या यह असंगति वास्तव में अधिक समझ में नहीं आती है? क्योंकि यह केवल दृश्य वरीयता का मामला है। यदि मैं अपने संपादक में एक बड़ा "दिखने वाला" इंडेंट पसंद करता हूं, तो मैं अपने टैब को 8 रिक्त स्थान निर्धारित कर सकता हूं, अगर मैं कम पसंद करता हूं तो मैं इसे 2 पर सेट कर सकता हूं। इस तरह कोड, वास्तव में स्वरूपण को बदलने के बिना, बेहतर है जो व्यक्ति को सूट करता है इसका अवलोकन करना।
dennmat

8
मैं dennmat से सहमत हूं- अगर मैं नेत्रहीन रूप से 2 रिक्त स्थान पसंद करता हूं, और गुइडो नेत्रहीन रूप से 4 रिक्त स्थान पसंद करते हैं, तो तार्किक विकल्प टैब इंडेंटेशन का उपयोग करना है।
सेपरो

0

सबसे महत्वपूर्ण लाभ जो मैं टैब पर रिक्त स्थान के बारे में बता सकता हूं, वह यह है कि बहुत सारे प्रोग्रामर और प्रोजेक्ट्स स्रोत कोड के लिए कॉलम की एक निर्धारित संख्या का उपयोग करते हैं, और यदि कोई व्यक्ति 2 टैब पर सेट किए गए टैबस्टॉप के साथ बदलाव करता है और प्रोजेक्ट 4 स्थानों का उपयोग करता है अन्य लोगों की संपादक विंडो के लिए लंबी लाइनें बहुत लंबी होने जा रही हैं। मैं मानता हूं कि टैब के साथ काम करना आसान है, लेकिन मुझे लगता है कि अंतरिक्ष सहयोग के लिए आसान है, जो कि पायथन जैसे बड़े ओपन सोर्स प्रोजेक्ट पर महत्वपूर्ण है।


2
यह गलत है: यह केवल तब होता है जब आप टैब और रिक्त स्थान मिलाते हैं, और आप समान रूप से सभी को रिक्त स्थान के बजाय टैब का उपयोग करने के लिए मजबूर करके इसे हल करेंगे।
ओ ० '।

0

आप अपना केक ले सकते हैं और इसे खा सकते हैं। स्वचालित रूप से स्थानों में टैब का विस्तार करने के लिए अपने संपादक को सेट करें।

(यह :set expandtabविम में होगा ।)


0

मेरा अनुमान है कि अधिकांश लिनक्स टेक्स्ट एडिटर डिफॉल्ट को बड़े पैमाने पर डिफ़ॉल्ट रूप से बड़ा बनाते हैं। मैं टैब पर रिक्त स्थान का उपयोग करने के लिए किसी अन्य अच्छे कारण के बारे में नहीं सोच सकता।


-1

पहले से ही नामित सभी अन्य कारणों के अलावा (संगतता, कभी भी रिक्त स्थान और टैब आदि का मिश्रण नहीं) मेरा मानना ​​है कि नोट करने के लिए 4 रिक्त स्थान के लिए कुछ और कारण हैं। ये केवल पायथन पर लागू होते हैं (और शायद अन्य भाषाओं में जहां इंडेंटेशन का अर्थ होता है)। व्यक्तिगत प्राथमिकताओं के आधार पर, अन्य भाषाओं में टैब अच्छे हो सकते हैं।

  1. यदि कोई संपादक टैब नहीं दिखाता (जो होता है, कॉन्फ़िगरेशन पर निर्भर करता है, काफी कुछ में), एक अन्य लेखक यह मान सकता है कि आपका कोड 4 रिक्त स्थान का उपयोग करता है, बी / सी लगभग सभी पायथन कोड सार्वजनिक रूप से उपलब्ध है; यदि उसी संपादक की टैब चौड़ाई 4 होती है, तो खराब चीजें हो सकती हैं - कम से कम, वह गरीब व्यक्ति एक इंडेंटेशन मुद्दे पर समय खो देगा जो कि सम्मेलन में फंसने से बचने के लिए बहुत आसान होगा। तो मेरे लिए, नंबर एक कारण स्थिरता के साथ बग से बचने के लिए है।

  2. जो बेहतर है, टैब या रिक्त स्थान के प्रश्न को फिर से पढ़ना, एक को पूछना चाहिए कि टैब के फायदे क्या हैं; मैंने बहुत सारे पोस्ट टैब की प्रशंसा करते हुए देखे हैं, लेकिन उनके लिए कुछ सम्मोहक तर्क हैं; emacs, vi (m), kate, ... जैसे अच्छे संपादक आपके कोड के शब्दार्थ के आधार पर उचित इंडेंटेशन करते हैं - यहां तक ​​कि टैब के बिना भी; समान संपादकों को आसानी से बैकस्पेस आदि पर एकमत करने के लिए कॉन्फ़िगर किया जा सकता है।

  3. कुछ लोगों की बहुत मजबूत प्राथमिकताएं होती हैं, जब यह कोड के रूप / लेआउट को तय करने में उनकी स्वतंत्रता की बात आती है; अन्य लोग इस स्वतंत्रता पर निरंतरता को महत्व देते हैं। अजगर इस स्वतंत्रता को यह कहकर बहुत कम कर देता है कि इंडेंटेशन का उपयोग ब्लॉक आदि के लिए किया जाता है। इसे बग या फीचर के रूप में देखा जा सकता है, लेकिन यह अजगर को चुनने के साथ आता है। व्यक्तिगत रूप से, मुझे यह स्थिरता पसंद है - जब एक नई परियोजना पर कोड शुरू करना, कम से कम लेआउट मेरे द्वारा उपयोग किए जाने के करीब है, इसलिए इसे पढ़ना काफी आसान है। ज्यादातर हमेशा।

  4. इंडेंटेशन के लिए रिक्त स्थान का उपयोग "लेआउट ट्रिक्स" की अनुमति देता है जो कोड को समझने की सुविधा दे सकता है; PEP8 में इनमें से कुछ उदाहरण सूचीबद्ध हैं; जैसे।

    foo = long_function_name(var_one, var_two,
                             var_three, var_four)
    
    # the same for lists
    a_long_list = [1,
                   2,
                   # ...
                   79]
    
    # or dictionaries
    a_dict = {"a_key": "a_value",
              "another_key": "another_value"}

    बेशक, ऊपर भी अच्छी तरह से लिखा जा सकता है

    foo = long_function_name(
        var_one, var_two,
        var_three, var_four)
    
    # the same for lists
    a_long_list = [
        1,
        2,
        # ...
        79]
    
    # or dictionaries
    a_dict = {
        "a_key": "a_value",
        "another_key": "another_value"}

    हालांकि, बाद में कोड की अधिक लाइनें लगती हैं और कम लाइनों को कभी-कभी बेहतर होने का तर्क दिया जाता है (बी / सी आपको सिंगल स्क्रीन पर अधिक मिलता है)। लेकिन अगर आप संरेखण पसंद करते हैं, तो रिक्त स्थान (अधिमानतः एक अच्छे संपादक द्वारा सहायता प्राप्त) आपको एक अर्थ में, पायथन में टैब की तुलना में अधिक स्वतंत्रता देते हैं। [खैर, मुझे लगता है कि कुछ संपादक आपको वही w / टैब करने की अनुमति देते हैं;) - लेकिन रिक्त स्थान के साथ, वे सभी करते हैं ...]

  5. उसी तर्क पर वापस आना जो हर कोई करता है - पीईपी 8 तय करता है (ठीक है, दृढ़ता से अनुशंसा करता है) रिक्त स्थान। यदि ऐसी परियोजना में आते हैं जो केवल टैब का उपयोग करती है, तो निश्चित रूप से, आपके पास बहुत कम विकल्प हैं। लेकिन पीईपी 8 सम्मेलनों की स्थापना के कारण, लगभग सभी पायथन प्रोग्रामर इस शैली के लिए उपयोग किए जाते हैं। यह बहुत आसान बनाता है एक शैली है कि ज्यादातर प्रोग्रामर द्वारा स्वीकार किया जाता है पर एक आम सहमति खोजने के लिए ... और शैली पर सहमत व्यक्तियों अन्यथा बहुत मुश्किल हो सकता है।

  6. शैली को लागू करने में मदद करने वाले उपकरण आमतौर पर अतिरिक्त प्रयास के बिना पीईपी 8 के बारे में जानते हैं। यह एक महान कारण नहीं है, लेकिन चीजों को बॉक्स से बाहर काम करना अच्छा है।


-3

टैब के साथ सार्वभौमिक समस्या यह है कि उन्हें अलग-अलग वातावरण में अलग-अलग प्रतिनिधित्व किया जा सकता है।
किसी दिए गए संपादक में, एक टैब 8 रिक्त स्थान हो सकता है या यह 2 हो सकता है।
कुछ संपादकों में, आप इसे नियंत्रित कर सकते हैं, जबकि अन्य में आप नहीं कर सकते।

टैब के साथ एक और मुद्दा यह है कि प्रिंटेड आउटपुट में उनका प्रतिनिधित्व कैसे किया जाता है। मेरा मानना ​​है कि अधिकांश प्रिंटर 8 टैब के रूप में एक टैब की व्याख्या करते हैं।

रिक्त स्थान के साथ, कोई संदेह नहीं है। सब कुछ लेखक के इरादे के अनुरूप होगा।


14
एक और जिसने मूल रूप से टैब को गलत समझा है ... एक यांत्रिक टाइपराइटर प्राप्त करें और थोड़ी देर के लिए इसके साथ खेलें, वास्तव में! 1 टैब 8 स्थानों के बराबर नहीं है! यह up_to_8_spaces के बराबर है ! ओटोह: आनुपातिक फोंट के साथ, संरेखण की गारंटी के लिए टैब एकमात्र तरीका है।

3
"दिए गए संपादक में, एक टैब 8 रिक्त स्थान हो सकता है या यह 2 हो सकता है"। अगर मुझे 4-स्पेस पसंद है और मेरे दोस्त को 8-स्पेस या 2-स्पेस या 3-स्पेस या, आदि पसंद हैं, तो हम दोनों टैब पर सहमत हो सकते हैं क्योंकि ( इंडेंट किए गए इंडेंटेशन कैरेक्टर को समर्पित करते हुए ), एडिटर जानता है कि वे क्या हैं और उन्हें प्रदर्शित कर सकते हैं तदनुसार। मैं कोड को 4-स्पेस वाइड इंडेंट के साथ देखता हूं, आप इसे 8-स्पेस वाइड इंडेंट के साथ देखते हैं, हमारा अजीब दोस्त अपने 3-स्पेस और सब कुछ कूल का उपयोग करता है। परिस्थितियाँ (विशेषकर पाइथन में!) जहाँ टैब की चौड़ाई कभी भी इतनी कम होती है कि अंतरिक्ष-प्रस्तावक शायद ही कभी उन्हें उठाते हैं।
जेम्स दिवावेद

-4

जिम और थॉमस वाउटर्स के बीच चर्चा परटिप्पणियों में ।

मुद्दा था ... चूंकि टैब और रिक्त स्थान की चौड़ाई दोनों भिन्न हो सकती है - और चूंकि प्रोग्रामर दोनों चौड़ाई पर सहमत नहीं हो सकते हैं - ऐसा क्यों है कि टैब दोष को सहन करता है।

मैं उस पर जिम के साथ सहमत हूँ - टैब में और खुद की बुराई नहीं हैं। लेकिन एक समस्या है...

रिक्त स्थान के साथ मैं नियंत्रित कर सकता हूं कि "MY OWN CODE" दुनिया में हर संपादक में कैसा दिखता है। यदि मैं 4 रिक्त स्थान का उपयोग करता हूं - तो कोई फर्क नहीं पड़ता कि आप किस संपादक को अपना कोड खोलते हैं, इसमें बाएं मार्जिन से समान दूरी होगी। टैब के साथ मैं संपादक के लिए टैब-चौड़ाई सेटिंग की दया पर हूं - यहां तक ​​कि मेरे खुद के कोड के लिए भी। और मुझे यह पसंद नहीं है।

इसलिए जब यह सच है कि रिक्त स्थान भी निरंतरता की गारंटी नहीं दे सकते हैं - वे कम से कम आपको हर जगह अपने स्वयं के कोड के लुक पर अधिक नियंत्रण प्रदान कर सकते हैं - ऐसा कुछ जो टैब नहीं कर सकता।

मुझे लगता है कि यह प्रोग्रामर्स में कोड लिखने की निरंतरता नहीं है - लेकिन उस कोड को दिखाने वाले संपादकों में स्थिरता - कि रिक्त स्थान हासिल करना आसान है (और थोपना)।


6
आप "संपादक के लिए टैब-चौड़ाई सेटिंग की दया पर" हैं? यदि आपका संपादक आपको टैब editor की चौड़ाई निर्धारित नहीं करने देता है, तो आप notepad.exe का उपयोग कर सकते हैं
user137369

4
@zigg तर्क के लिए बिल्कुल अप्रासंगिक है, क्योंकि वह (वह?) अपने कोड के बारे में विशेष रूप से बात कर रही है (यह जानकारी भी बोल्ड है, इटैलिक और सभी कैप्स में)। कहीं चर्चा के लिए प्रासंगिक कोड साझा कर रहा है।
user137369

1
संपादकों कोड के साथ देखने के लिए केवल उपकरण नहीं हैं। अलग-अलग, ट्रेसबैक, जीथब और अन्य वेब पेज भी हैं, और इसी तरह यह सभी आपके नियंत्रण से बाहर कुछ टैब की चौड़ाई (शायद 8) का चयन करेंगे।
रेमकोगर्लिच

में तुम्हारी बात समझ रहा हूँ। आप वास्तव में नियंत्रित करते हैं कि हर कोई आपके कोड (इंडेंटेशन के बारे में) को कैसे देखता है। आपका अगला चरण फ़ॉन्ट प्रकार और रंग को नियंत्रित करना है जो हर कोई आपके कोड को देखने के लिए उपयोग करेगा। उसके बाद, आप दुनिया पर ही हावी होने के लिए तैयार हैं और कोड एडिटर ही नहीं !!
Djunzu
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.