python - কিভাবে PEP8 সঙ্গে conforms খুব দীর্ঘ স্ট্রিং লিখতে এবং E501 প্রতিরোধ




string (6)

PEP8 আপনার পাইথন প্রোগ্রামের জন্য 80 টি কলামের নিয়ম নিচে রাখার পরামর্শ দিচ্ছে, আমি কিভাবে দীর্ঘ স্ট্রিংগুলির সাথে তার সাথে থাকতে পারি, অর্থাৎ

s = "this is my really, really, really, really, really, really, really long string that I'd like to shorten."

আমি কিভাবে নিম্নলিখিত লাইন, এ এই প্রসারিত সম্পর্কে যেতে হবে

s = "this is my really, really, really, really, really, really" + 
    "really long string that I'd like to shorten."

আপনি একটি স্থান হারিয়ে, এবং আপনি সম্ভবত একটি লাইন ধারাবাহিক চরিত্র প্রয়োজন, অর্থাত্। একটি \

s = "this is my really, really, really, really, really, really" +  \
    " really long string that I'd like to shorten."

অথবা এমনকি:

s = "this is my really, really, really, really, really, really"  \
    " really long string that I'd like to shorten."

অভিভাবকেরা লাইন ধারাবাহিকতার পরিবর্তে কাজ করবে, কিন্তু আপনি যদি মনে করেন যে আপনি কোনও টিপলে থাকার উদ্দেশ্যে ভাবছেন এবং কেবল একটি কমা ভুলে গেছেন। উদাহরণস্বরূপ নিন:

s = ("this is my really, really, really, really, really, really"
    " really long string that I'd like to shorten.")

বনাম:

s = ("this is my really, really, really, really, really, really",
    " really long string that I'd like to shorten.")

পাইথন এর গতিশীল টাইপিংয়ের সাথে, কোডটি কোনওভাবে চলতে পারে, কিন্তু যেটি আপনি চান না তার সাথে ভুল ফলাফল তৈরি করুন।


আমি টেক্সটwrap ব্যবহৃত হয়েছে। অতীতে সংযুক্ত। এটি একটু কষ্টকর তাই আমি এখন লাইন ধারাবাহিকতা পছন্দ করি কিন্তু যদি আপনি সত্যিই ব্লক ইন্ডেন্ট চান, আমি মনে করি এটি দুর্দান্ত।

উদাহরণ কোড (যেখানে ট্রিমটি প্রথম '\ n' একটি স্লাইস দিয়ে পরিত্রাণ পেতে হয়):

import textwrap as tw
x = """
       This is a yet another test.
       This is only a test"""
print(tw.dedent(x[1:]))

ব্যাখ্যা:

আমি যা বলতে পারি তা থেকে, একটি নতুন লাইনের আগে পাঠ্য প্রথম লাইনের সাদা স্থানটির উপর ভিত্তি করে ইন্ডেন্টেন্ট গণনা করে। তাই কোডটি লাইন আপ করা সহজ করার জন্য আমি একটি নতুন লাইন যোগ করেছি। নতুন লাইন এড়ানোর জন্য, আপনাকে পাঠ্যের প্রথম লাইনটিতে আরও অতিরিক্ত সাদা স্থান যুক্ত করতে হবে যাতে পরবর্তী লাইনে আপনার ইন্ডেন্টেশন হ্রাস হতো। আপনি যদি এটি পরিবর্তন করতে চেয়েছিলেন, আপনি re মডিউল ব্যবহার করে এটি সহজেই re করতে পারেন।

এই পদ্ধতির লম্বা লাইনগুলিতে সীমাবদ্ধতাগুলি রয়েছে যা এখনও আপনার চেয়ে দীর্ঘতর হওয়া উচিত যা স্ট্রিংগুলির সাথে সংযুক্ত অন্যান্য পদ্ধতিগুলি আরও উপযুক্ত।


আমি মনে করি আপনার প্রশ্নের সবচেয়ে গুরুত্বপূর্ণ শব্দ "প্রস্তাবিত" ছিল।

কোডিং মান মজার জিনিস। প্রায়শই নির্দেশিত নির্দেশনাটি যখন এটি লিখিত হয় (যেমন বেশীরভাগ টার্মিনালগুলি> 80 টি অক্ষর লাইনে দেখানোর জন্য অক্ষম), তবে সময়ের সাথে সাথে তারা কার্যত অপ্রচলিত হয়ে থাকে তবে এখনও কঠোরভাবে অনুসরণ করে। আমি অনুমান করি যে আপনাকে এখানে কী করতে হবে তা "ভাঙা" সম্পর্কিত আপেক্ষিক যোগ্যতাগুলি আপনার কোডের পাঠযোগ্যতা এবং মেইনটিনিবিলিটির বিরুদ্ধে বিশেষ পরামর্শ।

দুঃখিত এই আপনার প্রশ্নের উত্তর সরাসরি না।


একটি \ আপনি একাধিক লাইনগুলিতে বিবৃতি প্রসারিত করতে পারেন:

s = "this is my really, really, really, really, really, really" + \
"really long string that I'd like to shorten."

কাজ করা উচিত.


নিখুঁত concatenation পরিষ্কার সমাধান হতে পারে:

s = "this is my really, really, really, really, really, really," \
    " really long string that I'd like to shorten."

প্রতিফলন উপর সম্পাদনা আমি সম্মত যে লন্ড ধারাবাহিকতা ব্যতীত বন্ধনী ব্যবহার করার জন্য টডের পরামর্শ তার সমস্ত কারণের জন্য ভাল। আমার মধ্যে একমাত্র দ্বিধা এটি তুলনামূলকভাবে সহজে tuples সঙ্গে বন্ধনী স্ট্রিং বিভ্রান্তিকর।


ব্যাকস্ল্যাশ:

s = "this is my really, really, really, really, really, really" +  \
    "really long string that I'd like to shorten."

বা পিতামাতার মধ্যে মোড়ানো:

s = ("this is my really, really, really, really, really, really" + 
    "really long string that I'd like to shorten.")




pep8