python语言的变量随时_Python参数注解
#### 1.函数定义的弊端
- python是动态语言,变量随时可以被赋值,且能赋值为不同的类型,动态语言很灵活,但是这种特性也是弊端;
- **难发现**:由于不做任何类型检查,直到运行期问题才显现出来,或者线上运行时才能暴露出问 题 ;
- **难使用**:函数的使用者看到函数的时候,并不知道你的函数的设计,并不知道应该传入什么类 型的数据;
- **解决办法**:可以通过增加文档Documentation String(帮助文档)和使用函数参数注解两种办法来解决这个弊端;
#### 2.什么是参数注解
```
def show(x: int, y: int) -> int:
'''
:param x:
:param y:
:return:
'''
return x * y
print(show(10,20)) # 200
```
* 函数中间使用 ''' '''包裹起来的注释说明就是参数注解;
#### 3.使用参数注解的好处
* 参数注解可以避免动态语音的弊端;
* 可以对函数的参数进行类型注解和对函数的返回值进行类型注解;
* 参数注解只对函数参数做一个辅助的说明,并不对函数参数进行类型检查;
#### 4.Functools模块的使用
```
# 示例1
import inspect
def add(x:int, y:int, *args,**kwargs) -> int:
return x + y
sig = inspect.signature(add)
print(sig) # (x: int, y: int, *args, **kwargs) -> int
print(sig.parameters) # OrderedDict([('x', ), ('y', ), ('args', ), ('kwargs', )])
# 示例2: partial偏函数
from functools import partial
def add(x, y):
return x + y
partial_add = partial(add, x=1)
result = partial_add(y=2)
print(result) #输出: 3
# lru_cache
from functools import lru_cache
import time
@lru_cache()
def add(x, y):
time.sleep(10)
return x + y
print(add(1,2))
print(add(2,3))
print(add(2,3))
print(add(2,3))
```
* 指那些作用于函数或者返回其它函数的函数,通常只要是可以被当做函数调用的对象就是这个模块的目标;
* lru_cache装饰器的作用就是把计算结果保存在内存中,下一次有同一个参数传入的话就不会再次进行计算;
参考:https://www.9xkd.com/user/plan-view.html?id=4267794533
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69908432/viewspace-2639606/,如需转载,请注明出处,否则将追究法律责任。
python语言的变量随时_Python参数注解相关推荐
- 关于python语言的变量随时_Python中变量的类型是动态的,随时可以变化
Python中变量的类型是动态的,随时可以变化 答:√ 下列关于普通用户实现任务计划的描述,错误的是:(? ?) 答:普通用户可通过修改/etc/crontab文件制定任务计划 下列哪些属于人民战争的 ...
- python语言的变量随时命名随时_计算机二级
编程题较难,比考试难度高.能看懂就可以. 1. 按照"后进先出"原则组织数据的数据结构是____ A.双向链表 B.队列 C.栈 D.二叉树 2. 以下选项的叙述中,正确的是 A. ...
- python语言的变量随时命名随时_模拟试卷C
一.单项选择题 1. 按照"后进先出"原则组织数据的数据结构是____ 队列 栈 双向链表 二叉树 2. 以下选项的叙述中,正确的是 循环队列有队头和队尾两个指针,因此,循环队列是 ...
- python语言的变量类型_Python语言变量类型基础学习
本文主要向大家介绍了Python语言变量类型基础学习,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python基本语法1.定义常量: 之前定义变量没有一起介绍定义常量,是因为P ...
- python语言的变量特点随时_python程序设计——基本语言特性
参考<Python程序设计(第2版)> 清华大学出版社 董付国 ##### 除特殊说明外,以下代码示例,均为python 3.6版本 ##### 一.Python语言特性 1.python ...
- python语言的变量特点随时_【Python】Python语言特点
Python语言强调简洁直观.可读性强,常被称为"可执行的伪代码". 一.一切都是对象 Python是面向对象的编程语言,数.字符串.数据容器.函数.类.模块(函数)等都是对象.每 ...
- python语言的变量特点随时_完美契合人类习惯的Python变量和基本数据类型
文|宝哥版权|宝哥 有趣又有深度的灵魂,相遇不易,点击'关注',让我用最走心的文字,观察世间百态.解析技术奥秘! 做科学计算和数据分析,变量是始终绕不开的话题.学习程序设计语言,理解了变量相当于掌握了 ...
- python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程
本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...
- 以下python语言关键字在异常处理_python后端开发工程师考证试题
原标题:python后端开发工程师考证试题 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的& ...
最新文章
- const修饰的指针常量和常量指针
- Codeforces Round #535 (Div. 3) [codeforces div3 难度测评]
- docker挂载的目录无法读写
- Jeson nano + 思岚激光雷达rplidar_s1 + ubuntu18.04
- SpringBoot集成Editor.md 流程详细
- 转的:SQL执行提高效率的多种方法
- python入门教材论坛_GitHub - aisuhua/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
- 小学六年级学生写的 “线段树”解析,厉害了!
- java已解密的登录请求_使用https协议解决掉顽固不化的已解密的登录请求
- 目的路径太长如哈删除_如何清除winrar中的目标路径记录
- JavaScript开发必备!这四款静态代码分析工具你了解吗
- mysql怎么生成db文件_如何使mysql生成.db文件
- 换了5G手机不会用5G网络?赶快来补课!
- vue-element-admin 花裤衩 模板 ,中文版,运行报错解决方案
- 1067 mysql_mysql服务1067错误多种解决方案分享
- 【VS】vs2012解决nuget下载太慢的问题
- 前端学习笔记02--CSS快速了解
- 为什么说真正的高手都有窄门思维?
- 学习曲线和决策边界的绘制
- 什么是全景图?怎么做全景图?
热门文章
- informix和mysql数据量_informix数据库知识积累
- arm优化编译参数选项解释
- C/Cpp / STL / map 的 key 为自定义的 struct 或者 class 时,有什么注意事项?
- C typedef功能介绍(内附函数指针和指针函数的区别)
- 俄罗斯机器人雄鹿_在雄鹿无球可打,在火箭重获新生!哈登,你又让一人打出身价...
- 电脑桌面没有计算机图标鼠标也点不起来,为什么我的电脑桌面上的图标有时用鼠标怎么点也没反应呀?...
- 敏捷开发knowledge
- [AC自动机][dfs] 洛谷 P2444 病毒
- Python开发:初识Python
- javascript图书