查看原文
其他

老子写个代码而已,凭什么还要我写文档?

小帅b 学习python的正确姿势 2019-04-06

这两天我的朋友圈被程序员和产品经理的打架视频刷了屏,说是因为产品经理要求根据手机壳颜色更换 APP 主题的颜色,然后程序员忍无可忍就干起来了。边看我还边在想,这不太可能。应该是段子手又在编段子了,不过从这个转发量来看,可以间接地发现,程序员和产品经理在沟通和信任中还是有许多问题存在的。


https://v.qq.com/txp/iframe/player.html?vid=g0745abluu2&width=500&height=375&auto=0


话说打架的这两位主人公都被炒鱿鱼了,不过他们又特么打起来了:


https://v.qq.com/txp/iframe/player.html?vid=s0743q3947h&width=500&height=375&auto=0


虽然这是一个段子,但是从中我们可以思考一下,产品经理的思维和技术人员的思维是存在偏差的,互不理解,如果再加上沟通问题,那么积累久了要么是离职走人,要么就是像上面这样的事情发生。


所以我一直认为,咱们搞技术的不要一个劲的使用技术思维去思考问题,不要局限自己,人生不设限,做个斜杆青年,一专多能,比较好些。


1.什么是docString


说了点废话,咱们接下来进入 Python 正题, 今天给大家说说写文档这点事情。


很多程序员其实不太喜欢写文档的,因为觉得文档这事儿好像不关自己的事情,代码才是。老子写个代码而已,凭什么还要我写文档?


Python 有个叫做 docString 的东西完美解决了这问题,让你直接在代码中写文档,其实说白了就是给代码写点注释,什么语言都会有给代码写注释的,不过 Python 的 docString 可以直接把你的注释变成文档,是不是很厉害?


2.怎么使用docString

在函数、方法、模块、类中的第一句注释语句就是 docString,可以通过 help() 或者 __doc__ 进行访问。


比如这里的 requests 模块的 docString 是这样的:


# -*- coding: utf-8 -*-

#
  __
#  /__)  _  _     _   _ _/   _
# / (   (- (/ (/ (- _)  /  _)
#          /

"""
Requests HTTP Library
~~~~~~~~~~~~~~~~~~~~~

Requests is an HTTP library, written in Python, for human beings. Basic GET
usage:

  >>> import requests
  >>> r = requests.get('https://www.python.org')
  >>> r.status_code
  200
  >>> 'Python is a programming language' in r.content
  True

... or POST:

  >>> payload = dict(key1='value1', key2='value2')
  >>> r = requests.post('http://httpbin.org/post', data=payload)
  >>> print(r.text)
  {
    ...
    "form": {
      "key2": "value2",
      "key1": "value1"
    },
    ...
  }

The other HTTP methods are supported - see `requests.api`. Full documentation
is at <http://python-requests.org>.

:copyright: (c) 2017 by Kenneth Reitz.
:license: Apache 2.0, see LICENSE for more details.
"""


我们可以通过 help(requests) 或者 requests.__doc__ 就可以访问到它的文档了。


接下来我们自己写一个docString吧。


我们定义一个叫 myDoc 的函数,传入两个参数,再写一下docString,告诉别人我们的函数是干嘛的,传入的参数是什么,返回什么。


def myDoc(param1 ,param2):
"""
   this is myDoc function
   :param param1:  this is a first param
   :param param2: this is a second param
   :return: param1 + param2
   """
   print(param1 + param2)
return param1 + param2


是不是一目了然。


而且我们还可以使用 sphinx 的 autodoc 自动从docString生产api文档。是不是很方便呢?



相关文章:

造轮子多麻烦啊,拿来就用是了

Python要你叫几次就得叫几次



关注我,让你像看小黄文一样轻松学到 Python 的所有!






ps:还没获取我精心准备的 Python 电子书和思维导图等干货的可以在我的公众号「学习Python的正确姿势」中发送 python 免费获取哦! 

   

再ps:说真的,如果你能点个赞转发支持我一下我会更有动力写。



                            顺手,点个赞吧


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存