65 lines
3.1 KiB
Markdown
65 lines
3.1 KiB
Markdown
|
---
|
||
|
title: Docstring
|
||
|
localeTitle: Docstring
|
||
|
---
|
||
|
## Docstring
|
||
|
|
||
|
Docstring هو وسيلة للمطورين لتوصيل الغرض ، والمعلمات والمتطلبات ، واستخدام وظيفة في بيثون للمطورين الآخرين. وهو يتيح سهولة صيانة الكود وفهمه.
|
||
|
|
||
|
على عكس تعليقات كود المصدر التقليدية يجب أن يصف docstring ما وظيفة لا ، كيف.
|
||
|
|
||
|
من الأمثلة المشابهة على DocstringJavadoc في جافا.
|
||
|
|
||
|
تتم كتابة Docstring كتعليق متعدد الأسطر بعد رأس الإعلان في Python مباشرة. هناك 4 أجزاء مختلفة لأوراق التوزيع:
|
||
|
|
||
|
1. نوع المدخلات ونوع المخرجات
|
||
|
* يمكن أن يكون الإدخال / الإخراج `obj, list, bool, int, str, float`
|
||
|
2. وصف الوظيفة
|
||
|
* موجز ، ولكن وصف دقيق لما تقوم به وظيفتك
|
||
|
3. المتطلبات
|
||
|
* قراءة هذا من قبل الإنسان ، لذلك ليس من الضروري أن يكون رمز
|
||
|
4. حالات الاختبار (عادة 2-3)
|
||
|
|
||
|
التنسيق العام مدرج أدناه.
|
||
|
|
||
|
## تنسيق Docstring
|
||
|
|
||
|
`def my_examplefunc(input_type1, input_type2):
|
||
|
'''(input_type1, input_type2) -> output_type # Your first line will be the input/output. Remember the space around the arrow!
|
||
|
Here is a description of my example function # Your second line will be the description
|
||
|
REQ: type(input_type1) == list # Your next line (or lines) will be the requirements for the input of your function
|
||
|
REQ: type(input_type2) == str
|
||
|
>>> my_example_func([2, 3], "Hello World!") # After the requirements come test cases
|
||
|
[2, 3] "Hello World"
|
||
|
>>> my_example_func([7, 2], "Another test case") # Your first line of the test case is an example of the usage, prefaced by >>>
|
||
|
[7, 2] "Another test case" # Your second line of the test case is the output
|
||
|
>>> my_example_func([5, 6], "Last test case")
|
||
|
[5, 6] "Last test case"
|
||
|
'''
|
||
|
# Your code goes here, underneath the Docstring
|
||
|
`
|
||
|
|
||
|
من الأفضل فهم Docstring بأمثلة ، لذا ألق نظرة على برنامج المثال أدناه حيث يخرج البرنامج True إذا كان الرقم أقل من 5 ، و False إذا كان الرقم أكبر من 5.
|
||
|
|
||
|
## مثال 1
|
||
|
|
||
|
`def is_less_than_five(some_number):
|
||
|
'''(int) -> bool
|
||
|
Returns True if the given number is less than 5, and False is the given number is greater than 5.
|
||
|
REQ: some_number != 5
|
||
|
>>> is_less_than_five(4)
|
||
|
True
|
||
|
>>> is_less_than_five(6)
|
||
|
False
|
||
|
>>> is_less_than_five(100000)
|
||
|
False
|
||
|
'''
|
||
|
# Your code goes here
|
||
|
`
|
||
|
|
||
|
### بعض الروابط المفيدة:
|
||
|
|
||
|
تعتبر Numpy و Google Docstrings منهجين شائع الاستخدام:
|
||
|
|
||
|
* Google: http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example\_google.html
|
||
|
* Numpy: http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example\_numpy.html أيضًا ، يرجى الرجوع إلى بعض التعليقات الجيدة السابقة حول PEP: https://www.python.org/dev/peps/pep-0257/
|