পাইথন ডকুমেন্টেশনের জন্য জাভাডোক ব্যবহার করা [বন্ধ]


162

আমি বর্তমানে পাইথন দিয়ে শুরু করছি এবং আমার দৃ PH় পিএইচপি ব্যাকগ্রাউন্ড রয়েছে এবং পিএইচপি-তে আমি javadocএকটি ডকুমেন্টেশন টেম্পলেট হিসাবে ব্যবহার করার অভ্যাস নিয়েছি ।

আমি ভাবছিলাম পাইথনে ডকুমেন্টেশন javadocহিসাবে এর জায়গা আছে কিনা docstring? এখানে প্রতিষ্ঠিত সম্মেলন এবং / অথবা অফিসিয়াল গিলডলাইনগুলি কী কী?

উদাহরণস্বরূপ পাইথন মানসিকতার সাথে খাপ খোলার মতো এমন কিছু যা আমি যথাসম্ভব সংক্ষিপ্ত হওয়ার চেষ্টা করা উচিত?

"""
replaces template place holder with values

@param string timestamp     formatted date to display
@param string priority      priority number
@param string priority_name priority name
@param string message       message to display

@return string formatted string
"""

এবং যদি আমি কিছুটা পরিশ্রমী হয় তবে আমার কি এর পরিবর্তে এমন কিছু নিয়ে যাওয়া উচিত (যেখানে বেশিরভাগ ডকুমেন্টেশন __doc__পদ্ধতিটির মাধ্যমে মুদ্রিত হয় না )?

# replaces template place holder with values
#    
# @param string timestamp     formatted date to display
# @param string priority      priority number
# @param string priority_name priority name
# @param string message       message to display
#    
# @return string formatted string

def format(self, timestamp = '', priority = '', priority_name = '', message = ''):
    """
    replaces template place holder with values
    """
    values = {'%timestamp%' : timestamp,
              '%priorityName%' : priority_name,
              '%priority%' : priority,
              '%message%' : message}

    return self.__pattern.format(**values)

6
থেরাও এর আরও অনেক উত্তর এর আগের প্রশ্নে যা এটি একটি সদৃশ।
অ্যালেক্স ডুপয়

উত্তর:


227

কটাক্ষপাত আছে reStructuredText বিন্যাস, যা একটি প্লেইন / docstring মার্কআপ বিন্যাস, এবং পাইথন বিশ্বের সম্ভবত সবচেয়ে জনপ্রিয় (এছাড়াও হিসাবে "বাকি" নামে পরিচিত)। আর তুমি অবশ্যই দিকে তাকানো উচিত স্পিংক্স , reStructuredText থেকে ডকুমেন্টেশন উৎপন্ন করার জন্য একটি টুল (যেমন জন্য ব্যবহৃত। পাইথন ডকুমেন্টেশন নিজেই)। স্পিংক্স আপনার কোডের ডকাস্ট্রিংগুলি থেকে ডকুমেন্টেশনগুলি বের করার সম্ভাবনা অন্তর্ভুক্ত করে (দেখুন স্পিনেক্স.এক্সট.আউটোডোক ) এবং নির্দিষ্ট সম্মেলনের পরে আরএসটি ফিল্ড তালিকাগুলি স্বীকৃতি দেয় । এটি সম্ভবত এটি করার সবচেয়ে জনপ্রিয় উপায় হয়ে উঠেছে (বা হয়ে উঠছে)।

আপনার উদাহরণ নীচের মত দেখতে পারে:

"""Replaces template placeholder with values.

:param timestamp: formatted date to display
:param priority: priority number
:param priority_name: priority name
:param message: message to display
:returns: formatted string
"""

বা প্রকারের তথ্য সহ প্রসারিত:

"""Replaces template placeholder with values.

:param timestamp: formatted date to display
:type timestamp: str or unicode
:param priority: priority number
:type priority: str or unicode
:param priority_name: priority name
:type priority_name: str or unicode
:param message: message to display
:type message: str or unicode
:returns: formatted string
:rtype: str or unicode
"""

7
দীর্ঘ বিবরণের জন্য যদি আপনার একটি লাইন ভাঙার প্রয়োজন হয় তবে আপনি কী করবেন? কেমন লাগবে?
স্কাইলার সেভল্যান্ড

6
পুনর্গঠনযোগ্য পাঠ্য রেফারেন্স এবং ক্ষেত্রের তালিকাগুলি বিশেষত দেখুন: ডকুমেন্টিলস.সোর্সফোর্জন.नेट
স্টিভেন

6
নোট করুন যেভাবে এখানে বাক্যাংশগুলি পিইপি 257 মেনে চলে না । এটি এর Replace template place holder with values.পরিবর্তে হওয়া উচিত replaces template place holder with values- বাক্যটি দেখুন, শুরুতে বড় হাতের অক্ষর এবং শেষে সম্পূর্ণ স্টপ (।) দেখুন।
kratenko

1
সংস্করণ ১.৩ থেকে স্পিনিক্স sphinx.ext.napoleonএক্সটেনশনের মাধ্যমে কিছুটা ভাল বিন্যাস সমর্থন করে ।
পেট্রি

3
কেউ দয়া করে ": পরম ____:" এবং ": রিটার্ন:" এর মতো এই বিশেষ ডকাস্ট্রিংগুলিকে নির্দিষ্ট করে সেরা ডকুমেন্টেশনের দিকে আমাকে ইঙ্গিত করতে পারেন? এই জাতীয় দলিলটি মুহূর্তে খুঁজে পাওয়া বরং কঠিন বলে মনে হচ্ছে।
krumpelstiltskin

75

গুগল পাইথন স্টাইল গাইড অনুসরণ করুন । নোট করুন যে স্পিনিক্স নেপোলিয়ান এক্সটেনশান ব্যবহার করে এই ফর্ম্যাটটিও পার্স করতে পারে , যা স্পিনক্স ১.৩ এর সাথে প্যাকেজড আসবে (এটি পিইপি 257 এর সাথেও সামঞ্জস্যপূর্ণ ):

def func(arg1, arg2):
    """Summary line.

    Extended description of function.

    Args:
        arg1 (int): Description of arg1
        arg2 (str): Description of arg2

    Returns:
        bool: Description of return value

    """
    return True

উপরে লিঙ্কিত নেপোলিয়ান ডকুমেন্টেশন থেকে নেওয়া উদাহরণ।

এখানে সমস্ত ধরণের ডকাস্ট্রিংয়ের একটি বিস্তৃত উদাহরণ ।


20
ওখানকার সমস্ত মানুষের জন্য যারা ডক্টাস্টিংগুলি পড়েছেন
ওয়েলন ফ্লিন

1
গুগল পাইথন স্টাইল গাইড লিঙ্কটি আপডেট করেছে
বিভ্রান্ত

@ বিভ্রান্ত00 আমি কীভাবে নথিভুক্ত করতে পারি যে আমার পদ্ধতিটি অবজেক্টগুলির একটি অ্যারে ফিরিয়ে দিচ্ছে?
সিটো

1
আমি এখন বিভ্রান্ত! আরগস বা পরম? stackoverflow.com/questions/1788923/parameter-vs-argument
shuva

25

পাইথন ডকুমেন্টেশন স্ট্রিংয়ের মান বর্ণনা করা হয়েছে পাইথন বর্ধন প্রস্তাব 257

আপনার পদ্ধতির জন্য উপযুক্ত মন্তব্যটি এরকম কিছু হবে

def format(...):
    """Return timestamp string with place holders replaced with values.

    Keyword arguments:
    timestamp     -- the format string (default '')
    priority      -- priority number (default '')
    priority_name -- priority name (default '')
    message       -- message to display (default '')
    """

17
পিইপি 257 আর্গুমেন্ট অংশটির আসল বিন্যাসের বিষয়ে কিছুই বলে না। এটি কেবল বলেছে যে এটি লেখা উচিত, এবং একটি উদাহরণ দেয়। তবে এটি কেবল একটি উদাহরণ। অতএব, আমি স্পিনিক্স কনভেনশনটি অবশ্যই স্পষ্টভাবে পরামর্শ দেব, যেহেতু আপনি পিইপি 257 টি ভাঙ্গেন না এবং আপনি এমন বিন্যাস ব্যবহার করেন যা স্ফিংক দ্বারা পার্স করা যায়।
ভাই

7
উপরে উপস্থাপিত প্রথম দলিল ব্যতীত কুরুচিপূর্ণ এবং মানুষের জন্য প্রচুর অপ্রয়োজনীয় তথ্য রয়েছে। আমি বরং এমন একটি কনভেনশন ব্যবহার করব যা আমার উত্স কোডটি প্রথমে পার্স না করে পড়তে মনোরম করে
বিভ্রান্ত

1

পাইথন ডকুমেন্টিং এ একবার দেখুন , একটি পৃষ্ঠা "লেখক এবং পাইথন ডকুমেন্টেশন সম্ভাব্য লেখক লক্ষ্যে।"

সংক্ষেপে, পুনর্গঠিত পাঠ্যটি পাইথন নিজেই ডকুমেন্ট করার জন্য ব্যবহৃত হয়। বিকাশকারীর গাইডটিতে একটি রিস্ট প্রাইমার, স্টাইল গাইড এবং ভাল ডকুমেন্টেশন লেখার জন্য সাধারণ পরামর্শ রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.