python函数注释_Python⾥的⼀些注释规范
写代码注释是⼀件很重要的事情,如果你写的⼀段函数给别⼈调⽤那么往往都需要配上⼀些基本的注释。写好代码可以让别⼈容易阅读你的代码。试想⼀ 下:如果你在github上⾯到⼀段你想要的代码,这段代码有200⾏,可能这些代码我们要进⾏改造,那么这时候如果代码中都没有恰当的注释,我们可能 要⽤⽐较久的时间去通读⼀下他的代码。
相反,如果这些代码有⼀些恰当的注释,我们可能会更加好理解⼀点。学会注释是编码过程中不可或缺的⼀部分。那么什么样的注释才是规范的注释,才能让其他看你代码的⼈能快速的了解你得代码结构呢。我们今天就说⼀说 有关于Python的⼀些注释规范。
在说规范之前我们有必要先看以下Python的注释有哪些?
单⾏注释
多⾏注释python基础代码注释
特殊注释
按照每⼀个注释进⾏简单的介绍(我们截选request库的⼀段⽂件):
第⼀⾏第⼆⾏:为上述所说的特殊注释,这两个注释也⼏乎是在你所编写的每⼀个py⽂件中应该存在的,正常
情况下第⼀第⼆⾏通⽤格式。
原码反码补码符号位是什么关于 #!/usr/bin/env python
1、必须是⽂件的第⼀⾏
2、必须以#!开头
3、#!/usr/bin/env python告诉LINUX/UNIX去到python的翻译器。
unique约束的作用是什么关于: # -*- coding: utf-8 -*-
1、基本上在⽂件的第⼆⾏,在#!/usr/bin/env python的下⼀⾏
2、python interpret如何解释字符串的编码
3、当你的⽂件中出现中⽂的时候,你必须使⽤它
第四到第⼗三⾏:为上述所说的所⾏注释。多⾏注释,以三个引号开始,三个引号结尾。这三个引号可以使单引号也可以是双引号。
java课程设计扫雷游戏1、⼀般类⽂档,函数⽂档,字符串之类的⽤双引号,变量⽤单引号。
第⼆⼗⼀⾏:我们所说的单⾏注释,单⾏注释以#开头标识。
你也可以连续多次使⽤#单⾏注释来代替多⾏注释,但是我们并不推荐那么做。
知道了上述的注释之后,我们需要知道的是在哪些场合使⽤哪些注释。
第⼀点:为了避免⿇烦,在⽂件的开头加上这两句。
#!/usr/bin/env python
# -*- coding: utf-8 -*
java虚拟机执行的是什么第⼆点:每⼀个Python⽂件的开头,紧接着第⼀点所说的两⾏代码之后,我们往往要写上关于这个模块即这个Python⽂件实现的功能⼀些注意点,可能会发⽣的错误,总之你得注释要让使⽤它的⼈很明⽩你得代码段,⽐如:
"""
~~~~~~~~~~~~~~~~
Compatibility code to be able to use `cookielib.CookieJar` with requests.
requests.utils imports from here, so be careful with imports.
"""
或者
"""
This is the Scrapy engine which controls the Scheduler, Downloader and Spiders.
selecteditems索引的意思For more information see docs/topics/architecture.rst
"""
可能,你不看代码,都已经知道接下来的是什么了,那么你能到上⾯这个注释是出⾃哪个⽂件吗?
第三点:每⼀个类下⾯加上关于这个类的说明以及⽤法,这样使⽤它的⼈可能都不要知道他的内部构造,就可以使⽤他了,我们看看这个。第⼀:这个类是⼲嘛的?
第⼆:经常在什么情况下使⽤?
第三:如何使⽤?
都交待说明的很详细,你不看代码估计已经会使⽤了。
class HTTPAdapter(BaseAdapter):
"""The built-in HTTP Adapter for urllib3.
Provides a general-case interface for Requests sessions to contact HTTP and
HTTPS urls by implementing the Transport Adapter interface. This class will
usually be created by the :class:`Session ` class under the
covers.
:param pool_connections: The number of urllib3 connection pools to cache.
:param pool_maxsize: The maximum number of connections to save in the pool.
:param max_retries: The maximum number of retries each connection
should attempt. Note, this applies only to failed DNS lookups, socket
connections and connection timeouts, never to requests where data has
made it to the server. By default, Requests does not retry failed
connections. If you need granular control over the conditions under
which we retry a request, import urllib3's ``Retry`` class and pass
that instead.
:param pool_block: Whether the connection pool should block for connections.
Usage::
>>> import requests
>>> s = requests.Session()
>>> a = requests.adapters.HTTPAdapter(max_retries=3)
>>> s.mount('', a)
"""
第四点:每⼀个函数下⾯务必加上多⾏注释,很有可能你的函数注释只有⼀⾏,或者两⾏,你可以使⽤单⾏注释,也可以使⽤多⾏注释,这⾥与类函数说明相当,注释中往往包含使⽤说明,注意点。
def __setstate__(self, state):
# Can't handle by adding 'proxy_manager' to self.__attrs__ because
# self.poolmanager uses a lambda function, which isn't pickleable.
或者
def has_capacity(self):
"""Does the engine have capacity to handle more spiders"""
return not bool(self.slot)
第五点:在必要的地⽅加上单⾏注释。这些地⽅不外乎
1、你不怎么理解的代码
2、别⼈可能不理解的代码
3、提醒⾃⼰或者别⼈注意的代码、重要代码
self.inprogress = set() # requests in progress
assert not self.running, "Engine already running"
以上,更多的编码习惯。你可以去读⼀读,request的代码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论