मुझे अजगर की टिप्पणी में लंबा url कैसे प्रारूपित करना चाहिए और फिर भी PEP8 का अनुपालन होना चाहिए


85

एक ब्लॉक टिप्पणी में, मैं एक ऐसे URL को संदर्भित करना चाहता हूं जो 80 से अधिक वर्णों का हो।

इस URL को प्रदर्शित करने के लिए पसंदीदा सम्मेलन क्या है?

मुझे पता है कि बिट.ली एक विकल्प है, लेकिन URL स्वयं वर्णनात्मक है। इसे छोटा करना और फिर संक्षिप्त URL का वर्णन करते हुए एक नेस्टेड टिप्पणी करना एक भद्दे समाधान की तरह लगता है।

जवाबों:


77

Url को न तोड़ें:

# A Foolish Consistency is the Hobgoblin of Little Minds [1]
# [1]: http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds

5
मैं सहमत हूँ; हालाँकि, PyCharm को नज़रअंदाज़ करना आसान नहीं है (बिना अपने कोड को बदसूरत '# noinspection LongLine' (और इसी तरह के) को सभी जगह संदर्भित किए बिना। मुझे लगता है कि बड़ी समस्या यह है कि RST प्रारूप में सक्षम नहीं होने की सीमा है। URL के भीतर एक लाइन ब्रेक (जो प्रदर्शित नहीं होता है)।

4
इसका जवाब यह नहीं है कि कैसे अनुपालन किया जाए, इसलिए यदि आपके पास एक लिंटर है, तो यह चेतावनी के साथ रहता है।
एफ्रेन

4
@jfs तो इस सवाल का जवाब वास्तव में होना चाहिए: "एक लंबी लाइन इस मामले में PEP8 अनुरूप है"
Efren

2
@ अगर यह मेरा जवाब है तो ठीक है: * "मुझे कैसे प्रारूप चाहिए .. और पेप -8 का अनुपालन करना चाहिए" * -> "url नहीं तोड़ना"
jfs

2
मैंने बस कंट्रोल-क्लिक की खोज की है !! अब यह नहीं है कि आप किसी टिप्पणी में URL क्यों नहीं तोड़ना चाहते हैं।
बॉब स्टीन

69

से PEP8

लेकिन सबसे महत्वपूर्ण: पता है कि कब असंगत होना चाहिए - कभी-कभी स्टाइल गाइड बस लागू नहीं होता है। जब संदेह हो, तो अपने सर्वोत्तम निर्णय का उपयोग करें। अन्य उदाहरण देखें और तय करें कि सबसे अच्छा क्या दिखता है। और पूछने में संकोच न करें!

किसी विशेष नियम को तोड़ने के दो अच्छे कारण:

  • नियम लागू करते समय कोड को कम पठनीय बनाया जा सकता है, यहां तक ​​कि उन लोगों के लिए भी, जो नियमों का पालन करने वाले कोड को पढ़ने के लिए उपयोग किए जाते हैं।

व्यक्तिगत रूप से, मैं उस सलाह का उपयोग करूंगा, और लोगों के लिए आपकी टिप्पणी में पूर्ण वर्णनात्मक URL छोड़ दूंगा।


46

आप # noqaPEP8 / Flake8 को उस चेक को चलाने से रोकने के लिए लाइन के अंत में उपयोग कर सकते हैं । इसे PEP8 द्वारा इसके माध्यम से अनुमति दी जाती है:

नियम तोड़ने के लिए विशेष मामले पर्याप्त नहीं हैं।


3
सुरुचिपूर्ण। मैं विम में pyflakes का उपयोग करता हूं और जब तक यह नियमों के सेट पर सहमति से शून्य चेतावनी नहीं देता है तब तक कोई बदलाव नहीं होगा (मैकबेबे आवश्यकता हमारे मामले में शिथिल है, लेकिन 80 लाइनों की सीमा नहीं है)। सहकर्मियों को बताने का सबसे छोटा तरीका: मैंने मल्टीलाइन को विभाजित नहीं किया क्योंकि ऐसा करने का कोई मतलब नहीं है।
पीटर होस्ट

4
धन्यवाद @Sardathrion, अधिक वोट होने चाहिए क्योंकि यह वास्तव में एक व्यावहारिक समाधान का योगदान देता है।
एज़दाज़ुज़ेना

22

मैं कहूंगा कि इसे छोड़ दो ...

PEP20 :

नियम तोड़ने के लिए विशेष मामले पर्याप्त नहीं हैं।

हालांकि व्यावहारिकता शुद्धता को हरा देती है।

यह अधिक व्यावहारिक है कि ब्राउज़र में चिपकाने के दौरान लाइनब्रेक को हटाने के लिए एक यूआरएल को जल्दी से कॉपी / पेस्ट करें।


15

यदि आपका flake8 उपयोग कर रहा है:

"""
long-url: http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url-in-a-python-comment-and-still-be-pep8-compliant
"""  # noqa

-2

आप इस तरह से Google के url शॉर्टनर का उपयोग करते हैं:

http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds

आपको मिला:

http://goo.gl/93ZLQ


9
पाठ्यक्रम का जोखिम लिंक शॉर्टनर गायब हो गया है और हमारे पास लिंक को जानने का कोई तरीका नहीं है। आर्काइवटीम (लीडरशिप से जुड़े नेतृत्व के कारण) का पूरा प्रयास लिंक शॉर्टर्स को बचाने के लिए समर्पित है ...
अहमद फ़सीह

1
और केवल इतना ही नहीं बल्कि मूल URL में जानकारी है कि वह क्या है। URL शॉर्टनर उस जानकारी को खो देते हैं।
जुलिएन चास्टांग

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.