#### 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参数注解相关推荐

  1. 关于python语言的变量随时_Python中变量的类型是动态的,随时可以变化

    Python中变量的类型是动态的,随时可以变化 答:√ 下列关于普通用户实现任务计划的描述,错误的是:(? ?) 答:普通用户可通过修改/etc/crontab文件制定任务计划 下列哪些属于人民战争的 ...

  2. python语言的变量随时命名随时_计算机二级

    编程题较难,比考试难度高.能看懂就可以. 1. 按照"后进先出"原则组织数据的数据结构是____ A.双向链表 B.队列 C.栈 D.二叉树 2. 以下选项的叙述中,正确的是 A. ...

  3. python语言的变量随时命名随时_模拟试卷C

    一.单项选择题 1. 按照"后进先出"原则组织数据的数据结构是____ 队列 栈 双向链表 二叉树 2. 以下选项的叙述中,正确的是 循环队列有队头和队尾两个指针,因此,循环队列是 ...

  4. python语言的变量类型_Python语言变量类型基础学习

    本文主要向大家介绍了Python语言变量类型基础学习,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python基本语法1.定义常量: 之前定义变量没有一起介绍定义常量,是因为P ...

  5. python语言的变量特点随时_python程序设计——基本语言特性

    参考<Python程序设计(第2版)> 清华大学出版社 董付国 ##### 除特殊说明外,以下代码示例,均为python 3.6版本 ##### 一.Python语言特性 1.python ...

  6. python语言的变量特点随时_【Python】Python语言特点

    Python语言强调简洁直观.可读性强,常被称为"可执行的伪代码". 一.一切都是对象 Python是面向对象的编程语言,数.字符串.数据容器.函数.类.模块(函数)等都是对象.每 ...

  7. python语言的变量特点随时_完美契合人类习惯的Python变量和基本数据类型

    文|宝哥版权|宝哥 有趣又有深度的灵魂,相遇不易,点击'关注',让我用最走心的文字,观察世间百态.解析技术奥秘! 做科学计算和数据分析,变量是始终绕不开的话题.学习程序设计语言,理解了变量相当于掌握了 ...

  8. python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程

    本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...

  9. 以下python语言关键字在异常处理_python后端开发工程师考证试题

    原标题:python后端开发工程师考证试题 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的& ...

最新文章

  1. const修饰的指针常量和常量指针
  2. Codeforces Round #535 (Div. 3) [codeforces div3 难度测评]
  3. docker挂载的目录无法读写
  4. Jeson nano + 思岚激光雷达rplidar_s1 + ubuntu18.04
  5. SpringBoot集成Editor.md 流程详细
  6. 转的:SQL执行提高效率的多种方法
  7. python入门教材论坛_GitHub - aisuhua/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  8. 小学六年级学生写的 “线段树”解析,厉害了!
  9. java已解密的登录请求_使用https协议解决掉顽固不化的已解密的登录请求
  10. 目的路径太长如哈删除_如何清除winrar中的目标路径记录
  11. JavaScript开发必备!这四款静态代码分析工具你了解吗
  12. mysql怎么生成db文件_如何使mysql生成.db文件
  13. 换了5G手机不会用5G网络?赶快来补课!
  14. vue-element-admin 花裤衩 模板 ,中文版,运行报错解决方案
  15. 1067 mysql_mysql服务1067错误多种解决方案分享
  16. 【VS】vs2012解决nuget下载太慢的问题
  17. 前端学习笔记02--CSS快速了解
  18. 为什么说真正的高手都有窄门思维?
  19. 学习曲线和决策边界的绘制
  20. 什么是全景图?怎么做全景图?

热门文章

  1. informix和mysql数据量_informix数据库知识积累
  2. arm优化编译参数选项解释
  3. C/Cpp / STL / map 的 key 为自定义的 struct 或者 class 时,有什么注意事项?
  4. C typedef功能介绍(内附函数指针和指针函数的区别)
  5. 俄罗斯机器人雄鹿_在雄鹿无球可打,在火箭重获新生!哈登,你又让一人打出身价...
  6. 电脑桌面没有计算机图标鼠标也点不起来,为什么我的电脑桌面上的图标有时用鼠标怎么点也没反应呀?...
  7. 敏捷开发knowledge
  8. [AC自动机][dfs] 洛谷 P2444 病毒
  9. Python开发:初识Python
  10. javascript图书