python_官方编码规范/(函数)文档规范/三引号“““函数说明/注释规范/vscode文档插件
文章目录
python PEP:
https://www.python.org/dev/peps/#introduction
Style Guide for Python Code
https://www.python.org/dev/peps/pep-0008/
documentation strings
jetBrain IDEA(pycharm)
python_pep
-
One-liners are for really obvious cases. They should really fit on one line. For example:
def kos_root(): """Return the pathname of the KOS root directory.""" global _kos_root if _kos_root: return _kos_root ... Notes:
-
Triple quotes are used even though the string fits on one line. This makes it easy to later expand it.
-
The closing quotes are on the same line as the opening quotes. This looks better for one-liners.
-
There’s no blank line either before or after the docstring.
-
The docstring is a phrase ending in a period. It prescribes the function or method’s effect as a command (“Do this”, “Return that”), not as a description;
- e.g. don’t write “Returns the pathname …”.(这个例子中就不是以一个词组结尾的)
-
The one-line docstring should NOT be a “signature” reiterating the function/method parameters (which can be obtained by introspection).
- Don’t do:
def function(a, b): """function(a, b) -> list""" - This type of docstring is only appropriate for C functions (such as built-ins), where introspection is not possible.
- However, the nature of the return value cannot be determined by introspection[^introspection],
- so it should be mentioned. (返回值的情况无法被推导,您需要在概述中提一下)
- The preferred form for such a docstring would be something like:
def function(a, b): """Do X and return a list.""" (Of course “Do X” should be replaced by a useful description!)
-
introspection
Introspection is an ability to determine the type of an object at runtime. Everything in python is an object. Every object in Python may have attributes and methods. By using introspection, we can dynamically examine python objects.
Code Introspection is used for examining the classes, methods, objects, modules, keywords and get information about them so that we can utilize it.
Introspection reveals useful information about your program’s objects.
Python, being a dynamic, object-oriented programming language, provides tremendous introspection support.
Python’s support for introspection runs deep and wide throughout the language.
.They are:
1. type() : This function returns the type of an object.
``` # Python program showing``# a use of type function`` ` `import` `math`` ` `# print type of math``print``(``type``(math))`` ` `# print type of 1 ``print``(``type``(``1``))`` ` `# print type of "1"``print``(``type``(``"1"``))`` ` `# print type of rk``rk ``=``[``1``, ``2``, ``3``, ``4``, ``5``, ``"radha"``]`` ` `print``(``type``(rk))``print``(``type``(rk[``1``]))``print``(``type``(rk[``5``])) ``` **Output:** ```python <class 'module'> <class 'int'> <class 'str'> <class 'list'> <class 'int'> <class 'str'> ``` dir() :This function return **list of methods and attributes** <u>associated with that object</u>. ``` # Python program showing # a use of dir() function import math rk =[1, 2, 3, 4, 5] # print methods and attributes of rk print(dir(rk)) rk =(1, 2, 3, 4, 5) # print methods and attributes of rk print(dir(rk)) rk ={1, 2, 3, 4, 5} print(dir(rk)) print(dir(math)) ``` **Output:** ```python ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', ``` - id()This function returns a special id of an object. ``` # Python program showing # a use of id() function import math a =[1, 2, 3, 4, 5] # print id of a print(id(a)) b =(1, 2, 3, 4, 5) # print id of b print(id(b)) c ={1, 2, 3, 4, 5} # print id of c print(id(c)) print(id(math)) ``` **Output:** ``` 139787756828232 139787757942656 139787757391432 139787756815768 ```
It is best to list each argument on a separate line. For example:
def complex(real=0.0, imag=0.0): """Form a complex number. Keyword arguments: real -- the real part (default 0.0) imag -- the imaginary part (default 0.0) """ # your codes: if imag == 0.0 and real == 0.0: return complex_zero ......
函数文档规范实例:(numpy 风格)
navie_byes.py:
vscode python docString:
配置快捷键
使用
选择文档风格:
推荐numpy风格:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」