मैं बैकस्लैश का एक लगातार उपयोगकर्ता हूं जो उसके जवाब में ज़ेज़ेक ने संकेत दिया था। पीईपी 8 सिर्फ एक दिशानिर्देश है, जब आप इसका उल्लंघन करते हैं तो उस पर नींद न खोएं!
हालांकि, मैं भी अक्सर नीचे स्वरूपण, जहां मैं zzzeek का पहला उदाहरण चोरी कर लिया है के प्रकार का उपयोग करें, हल्का यह बदलाव किया है, और पुन: स्वरूपित:
q = Session.query(
Subkeyword.subkeyword_id,
Subkeyword.subkeyword_word,
)
q = q.filter_by(subkeyword_company_id=self.e_company_id) # first filter
q = q.filter_by(subkeyword_word=subkeyword_word) # 2nd filter
q = q.filter_by(subkeyword_active=True)
if filter_by_foo:
q = q.filter(Subkeyword.foo == True)
# Run the query (I usually wrap in a try block)...
subkeyword = q.one()
क्ष को दोहराया रीअसाइनमेंट पहली बार में एक तरह से बुरा लगता है , लेकिन मैं इसे खत्म कर लिया है। प्रदर्शन प्रभाव प्रभावी रूप से शून्य है। इस तरह से एक बड़ा फायदा यह है कि आप अपने प्रश्नों को दस्तावेज करने के लिए पिछली टिप्पणियों और टिप्पणी पंक्तियों में मिश्रण कर सकते हैं (जैसा कि मैंने उपरोक्त बेकार जोड़ों के साथ किया है)। बैकस्लाश के साथ चेनिंग लाइनें आपको यहां सीमित करती हैं।
स्वरूपण का इस तरह से जब आदि
तर्क ट्रिगर संशोधनों के टन, एम्बेडेड अदिश चयन, एक और उदाहरण के रूप में के साथ बड़े पैमाने पर प्रश्नों तैयार विशेष रूप से साफ है, मैं एक काफी बड़े (> 150 लाइनों) CTE क्वेरी मेरे पास है मैं एसक्लाक्लेमी में उत्पन्न कर रहा हूं जिसमें बहुत सारे मिश्रित तर्क, एलियासिंग और लेबलिंग (जो उत्पन्न क्वेरी की पठनीयता के लिए आवश्यक है) है जो दोनों विधियों को मिश्रित करती है।,
cte_init = session.\
query(
child1.foo.label("child1_foo"),
sa.literal(1).label("indent"), # can comment on non-slashed lines
child2.bar.label("child2bar"),
#comments between non-slashed lines ok, too
sa.func.MAX(toplevel.baz).label("max_baz"),
).\
select_from(top_level).\
join(child1,
child1.id == toplevel.fk_child1_id).\
join(child2.
child2.id == toplevel.fk_child2.id).\
filter(top_level.name == "bogus").\
cte(name = "cte", recursive = True)
if(use_filter_x):
cte_init = cte_init.filter_by(x = "whatever")
# etc (no, the above doesn't make any sense)...
सामान्य तौर पर अगर आप अपने लाइनों नई परिचालन (कई आम एसक्यूएल स्वरूपण योजनाओं की तरह करते हैं) के साथ बंद का नेतृत्व करने के लिए सुनिश्चित करें, यह रहता है: यह एक गंभीर रूप से कम हो (और घायल) संस्करण नीचे की तरह कुछ शुरू होता है काफी पठनीय ब्रैकेट के भीतर न्यूलाइन से डरो मत, या तो।
पॉको टीम शैली मार्गदर्शिका में अच्छा बैकस्लाश उपयोग http://www.pocoo.org/internal/styleguide/ – estin