python函数定义-->在Python函数定义中是什么意思?

小编典典

这些是PEP 3107中涵盖的功能注释。具体来说,->标记是返回函数注释。

例子:

>>> def kinetic_energy(m:"in KG", v:"in M/S")->"Joules":

... return 1/2*m*v**2

...

>>> kinetic_energy.__annotations__

{"return": "Joules", "v": "in M/S", "m": "in KG"}

注释是字典,因此你可以执行以下操作:

>>> "{:,} {}".format(kinetic_energy(20,3000),

kinetic_energy.__annotations__["return"])

"90,000,000.0 Joules"

你还可以拥有一个python数据结构,而不仅仅是一个字符串:

>>> rd={"type":float,"units":"Joules","docstring":"Given mass and velocity returns kinetic energy in Joules"}

>>> def f()->rd:

... pass

>>> f.__annotations__["return"]["type"]

>>> f.__annotations__["return"]["units"]

"Joules"

>>> f.__annotations__["return"]["docstring"]

"Given mass and velocity returns kinetic energy in Joules"

或者,你可以使用函数属性来验证调用的值:

def validate(func, locals):

for var, test in func.__annotations__.items():

value = locals[var]

try:

pr=test.__name__+": "+test.__docstring__

except AttributeError:

pr=test.__name__

msg = "{}=={}; Test: {}".format(var, value, pr)

assert test(value), msg

def between(lo, hi):

def _between(x):

return lo <= x <= hi

_between.__docstring__="must be between {} and {}".format(lo,hi)

return _between

def f(x: between(3,10), y:lambda _y: isinstance(_y,int)):

validate(f, locals())

print(x,y)

版画

>>> f(2,2)

AssertionError: x==2; Test: _between: must be between 3 and 10

>>> f(3,2.1)

AssertionError: y==2.1; Test:

2020-02-19

<p> <span style="color:#333333;"> </span> </p> <p style="font-family:"color:#3D3D3D;font-size:16px;background-color:#FFFFFF;"> 您观看课程学习后<br /> 免费入群领取【超全Python资料包+17本学习电子书】 </p> <p style="font-family:"color:#3D3D3D;font-size:16px;background-color:#FFFFFF;"> <img src="https://img-bss.csdn.net/201909261013197021.jpg" alt="" /> </p> <br /> <p> <br /> </p> <p> <span style="color:#333333;">python编程入门,针对0基础就python语言基础语法的各个点逐步讲解,由浅入深,通俗易懂,层层深入。</span> </p> <p> <span style="color:#333333;"> </span> </p> <p style="font-size:14px;color:#333333;"> 课程亮点: </p> <p style="font-size:14px;color:#333333;"> 1,对于编程0基础的同学或者想把python作为第二门编程语言的同学十分适合。 </p> <p style="font-size:14px;color:#333333;"> 2,生动形象,浅显易懂,清晰明了。 </p> <p style="font-size:14px;color:#333333;"> 3,针对基础语法详细讲解,构建python编程的基础能力。 </p> <p style="font-size:14px;color:#333333;"> <br /> </p> <p style="font-size:14px;color:#333333;"> 课程内容: </p> <p style="font-size:14px;color:#333333;"> python基础学习课程,从搭建环境到判断语句,再到基础的数据类型,之后对函数进行学习掌握,熟悉文件操作,初步构建面向对象的编程思想,最后以一个案例带领同学进入python的编程殿堂 </p> <p style="font-size:14px;color:#333333;"> <br /> </p> <p style="font-size:14px;color:#333333;"> 适用人群: </p> <p style="font-size:14px;color:#333333;"> 1、希望未来从事IT行业编程方向工作的小伙伴进行入门学习。 </p> <p style="font-size:14px;color:#333333;"> 2、希望以后从事人工智能方向工作需要掌握python编程语言的人群。 </p> <p style="font-size:14px;color:#333333;"> <br /> </p> <p style="font-size:14px;color:#333333;"> 课程目录介绍: </p> <p style="font-size:14px;color:#333333;"> 1. python入门-环境搭建和第一个python程序 </p> <p style="font-size:14px;color:#333333;"> 2. python入门-数据类型、输入输出以及运算符 </p> <p style="font-size:14px;color:#333333;"> 3. 流程控制-判断语句 </p> <p style="font-size:14px;color:#333333;"> 4. 流程控制-循环 </p> <p style="font-size:14px;color:#333333;"> 5. 数据序列-字符串 </p> <p style="font-size:14px;color:#333333;"> 6. 数据序列-列表和元祖 </p> <p style="font-size:14px;color:#333333;"> 7. 数据序列-字典和集合 </p> <p style="font-size:14px;color:#333333;"> 8. 数据序列-公共操作以及推导式 </p> <p style="font-size:14px;color:#333333;"> 9. 函数上 </p> <p style="font-size:14px;color:#333333;"> 10. 函数下 </p> <p style="font-size:14px;color:#333333;"> 11. 函数进阶上 </p> <p style="font-size:14px;color:#333333;"> 12. 函数进阶下 </p> <p style="font-size:14px;color:#333333;"> 13. 文件操作 </p> <p style="font-size:14px;color:#333333;"> 14. 面向对象-基础 </p> <p style="font-size:14px;color:#333333;"> 15. 面向对象-继承 </p> <p style="font-size:14px;color:#333333;"> 16. 面向对象-其他 </p> <p style="font-size:14px;color:#333333;"> 17. 异常处理 </p> <p style="font-size:14px;color:#333333;"> 18. 模块和包 </p> <p style="font-size:14px;color:#333333;"> 19. 综合案例 </p> <br />
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页