python笔记30-docstring注释添加变量
前言
python里面添加字符串注释非常简单,如何将变量放入 python 的函数注释里面呢?
docstring也就是给代码加注释的内容了,python可以给函数,类、方法,模块添加注释内容,注释标准格式一般是三个双引号,如:"""美程序员枪击4同事,竟因代码不写注释?"""

docstring
先看一个简单案例,在函数里面添加注释内容,函数下方三个双引号里面就可以写该函数的注释文档了,如果需要调用此函数的注释内容
# coding:utf-8
def yoyo():
"""函数功能:打印hello world!"""
print("hello world!")
a = yoyo.__doc__
print(a)
运行结果:函数功能:打印hello world!
类、方法和模块也能添加注释内容
# coding:utf-8
"""
这个是该模块的注释内容:hello.py
"""
class Hello():
"""hello类,实现xx功能"""
def world(self):
"""world方法,打印world"""
print("world")
a = __doc__ # 获取模块的docstring内容
print(a)
b = Hello.__doc__ # 获取类的docstring内容
print(b)
c = Hello.world.__doc__ # 获取方法的docstring内容
print(c)
运行结果
这个是该模块的注释内容:hello.py
hello类,实现xx功能
world方法,打印world
如果函数里面带有参数,也能给参数添加注释
一个标准的函数注释应该包含着几个部分:
- 函数实现功能、
- 参数说明(需传的参数是什么意思,参数类型)
- 函数返回值,没return 默认为None
def login(user, psw):
"""
登录函数-连着输入三个双引号后回车,自动出来格式
:param user: 用户名,str
:param psw: 密码, str
:return: resut是登录结果, True or False
"""
print(user)
print(psw)
resut = "登录结果"
return resut
print(login.__doc__)
运行结果
登录函数-连着输入三个双引号后回车,自动出来格式
:param user: 用户名,str
:param psw: 密码, str
:return: resut是登录结果, True or False
docstring添加变量
在docstring里面添加变量内容,变量的部分用%s代替,最后取值的时候,前面加一行代码
用变量替换里面的%s部分
# coding:utf-8
c = "这里是变量内容"
def hello():
"""添加的注释部分,%s"""
print("hello world!")
hello.__doc__ %= c # 先用变量c替换里面的%s部分
a = hello.__doc__
print(a)
运行结果:
添加的注释部分,这里是变量内容
还有一种写法,可以先不在函数里面加内容,直接给函数.__doc__赋值
# coding:utf-8
c = "这里是变量内容"
def hello():
print("hello world!")
# 用hello.__doc__方法添加注释内容
hello.__doc__ = """添加的注释部分,%s"""%c
a = hello.__doc__
print(a)
运行结果:添加的注释部分,这里是变量内容
使用装饰器decorator
上面的方法虽然能实现添加变量注释,但是不太优雅,接下来可以封装一个函数,使用装饰器来把变量传入进去
# coding:utf-8
def docstring_parameter(*sub):
"""写一个可以添加变量注释的装饰器"""
def dec(obj):
obj.__doc__ = obj.__doc__.format(*sub)
return obj
return dec
# 案例1-添加一个参数
@docstring_parameter("打印hello world")
def hello():
""" 实现功能:{0}"""
print("hello world!")
a = hello.__doc__
print(a)
# 案例2-添加2个参数
@docstring_parameter("打印hello", "打印world")
def world():
""" 实现功能:{0}, {1}"""
print("hello world!")
b = world.__doc__
print(b)
运行结果:
实现功能:打印hello world
实现功能:打印hello, 打印world
参考文档:https://ask.helplib.com/python-2.7/post_1277206
python自动化交流 QQ群:779429633
python笔记30-docstring注释添加变量的更多相关文章
- Python基础入门:注释、变量、运算符与数据类型
一.为什么要学习python? python的特点 python作为一门脚本语言,在越来越多的行业和领域发挥着重大作用,比如机器学习.网站开发.数据分析.爬虫.自动化测试. 同时,python具备以下 ...
- devi into python 笔记(二)元组 变量声明 和列表解析
元组tuple: 类似list,只是tuple是不可变的list.类似java的String都是不可改变的.注意:tuple没有方法(有待考证),不可以像list那样那个list.pop 或者list ...
- python笔记:#004#注释
注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释) 以 # 开头,# ...
- python笔记3:注释命名风格
6.注释: 行注释采用 # 开头,多行注释使用三个单引号 (''') 或三个双引号 ("' '"),注释不需要对齐 三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保 ...
- python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)
一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t tab ...
- Python笔记(30)-----logger
转自: https://www.jb51.net/article/139080.htm logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便 ...
- python笔记32-ddt框架优化(生成html报告注释内容传变量)
前言 至于什么是ddt这个可以参考我之前写的博客内容,使用ddt框架的时候,有个问题困扰我很久了,一直没得到解决(也有很大小伙伴问过我,没解决抱歉了!) 这个问题就是:如何使用ddt框架时,生成的ht ...
- python学习第三讲,python基础语法之注释,算数运算符,变量.
目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...
- Python语言——基础01-环境安装、注释、变量
开篇导言: 今天开始进行python学习的笔记更新,以后我都用截图的方式更新,方便不麻烦,界面美观,今天学习更新的python学习内容是环境安装.注释.变量的内容 关注我博客的童鞋从现在开始也可以跟着 ...
随机推荐
- chmod g+s 、chmod o+t 、chmod u+s:Linux高级权限管理
关于linux下权限操作chmod的一些说明!比rxw高级内容! 转载自http://blog.chinaunix.net/uid-26642180-id-3378119.html Set uid, ...
- Pytest里,mark装饰器的使用,双引号,没引号,这种差别很重要
按最新版的pytest测试框架. 如果只是单一的mark,不要加任何引号. 如果是要作and ,not之类的先把,一定要是双引号! 这个要记清楚,好像和以前版本的书上介绍的不一样,切记! import ...
- Solr的入门知识
一.Solr的简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中.都 ...
- linux删除特殊字符命名的文件
今天在服务器上不小心创建了一个!命名的文件还有一个\命名的文件,本来想用转义字符进行删除,又担心误删了项目文件....最后找到最好的解决办法 如下: ls -i 查看文件inum值 执行删除inum ...
- React.js学习之环境搭建
1 工欲善其事必先利其器:前端开发工具 1.1 WebStorm和Sublime Text Sublime Text:作为代码编辑器,Sublime Text的优点如下: 主流前端开发编辑器 体积较小 ...
- js 格式化时间,可定义格式
var format = function (time, format) { var t = new Date(time); var tf = function (i) { return (i < ...
- 【Codechef】Chef and Bike(二维多项式插值)
something wrong with my new blog! I can't type matrixs so I come back. qwq 题目:https://www.codechef.c ...
- 【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速
不管是iptables还是tc(traffic control)功能都很强大,都是与网络相关的工具,那么我们就利用这两个工具来对端口进行带宽的限制. 1.使用命令ifconfig查看服务器上的网卡信息 ...
- Ionic Js十五:对话框
$ionicPopup ionic 对话框服务允许程序创建.显示弹出窗口. $ionicPopup 提供了3个方法:alert(), prompt(),以及 confirm() . 实例 HTML 代 ...
- python入门4(冒泡排序)
在学习了最基本的python语法后,我们来实践一个最简单的冒泡排序,检验一下自己是否入门. def bubble_sort(lists): # 冒泡排序 count = len(lists) for ...