Python函数以及面向对象
ammmao
这个作者很懒,什么都没留下…
展开
-
Python利用inpect模块实现函数参数类型检查
一丶函数注解Function Annotations函数注解python3.5引入对函数的参数进行类型注解对函数的返回值进行类型注解只读函数参数做一个辅助的说明,并不对函数进行类型检查提供第三方工具,做代码分析,发现隐藏的BUG函数注解的信息保存在__annotations__属性中In [1]: def add(x: int, y: int) -> int: ...原创 2019-04-25 22:05:45 · 799 阅读 · 0 评论 -
Python常用高阶函数map/sorted/filter/reduce
python中高阶函数的定义为:接收函数作为参数,或者把函数作为结果返回的函数就是高阶函数(higher-order function)在函数式编程范式中,最常见的高阶函数有map、filter、reduce和sorted以及他们的替代方案。下面着重使用python自定义函数来实现他们的功能,这样更有助于加深理解和记忆一丶sorted首先先来介绍个小技巧,在jupyer notebo...原创 2019-04-25 22:07:20 · 368 阅读 · 0 评论 -
定义带有默认参数的函数
1.问题想定义一个函数或者方法,其中一个或者多个参数是可选的并且带有默认值2.解决方案表面上定义一个带有可选默认参数的函数时非常简单的In [1]: def func(a, b =1): ...: return a + b ...: In [2]: func(1)Out[2]: 2In [3]: func(1,2)Out[3]: 3但如果默认值时...原创 2019-04-22 08:54:32 · 2217 阅读 · 0 评论 -
在匿名函数中绑定变量的值
1.问题我们利用lambda表达式定义了一个匿名函数,希望在函数定义的时候完成对变量名的绑定2.解决方案考虑以下的代码:In [1]: x = 10In [2]: a = lambda y : x + yIn [3]: x = 20In [4]: b = lambda y : x + yIn [5]: a(10)Out[5]: 30In [6]: b(10)Out[...原创 2019-04-22 08:55:48 · 286 阅读 · 0 评论 -
Python生成器函数
一丶生成器generator生成器指的是生成器对象,可以有生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象生成器对象,是一个可迭代对象,是一个迭代器生成器对象,是延迟计算、惰性求值的二丶生成器函数函数体中包含yield语句的函数,就是生成器函数,调用后返回生成器对象In [1]: x = (i for i in range(5))...原创 2019-04-22 08:57:26 · 782 阅读 · 0 评论 -
Python装饰器应用实例
一丶写一个命令分发器1.要求:程序员可以方便的注册函数到某一命令,用户输入命令,路由到注册的函数,如果此命令没有对应的注册函数,执行默认函数拿到这个题目,又是一脸懵逼分析:题目要求大概可以分成两个部分,注册函数,执行函数。# 注册函数def command(): functionname = {} def register(name): #注册函数 d...原创 2019-05-04 21:26:42 · 637 阅读 · 0 评论 -
Python面向对象之描述器理解
文章目录反射概述反射相关的函数和方法反射相关的魔术方法object.__getattr__(self, name)object.__getattribute__(self, name)object.__setattr__(self, name, value)object.__delattr__(self, name)描述器描述器介绍1.描述器定义2.实现描述器的方法3.数据描述器和非数据描述器4....原创 2019-06-02 11:26:19 · 481 阅读 · 0 评论 -
Python 错误和异常
异常Exception错误Error:又称解析错误,是可以避免的异常Exception:在没有出现上面错误的前提下,语句和语法都是正确的,本身是意外情况,异常是不可避免的In [1]: "asd" = 100 File "<ipython-input-2-2b4a41f6b880>", line 1 "asd" = 100# 这是错误 ^...原创 2019-05-23 20:14:46 · 2119 阅读 · 0 评论 -
python元编程
前言元编程概念来自LISP和smalltalk。举个简单的栗子:我们写程序是直接写代码,是否能够用代码来生成未来我们需要的代码呢?这就是元编程, ‘类’的’类’,也就是比类更高级的东西。用来生成代码的程序成为元程序metaprogram,编写这种程序就称为元编程metaprogramming。python通过反射来实现元编程。python中,所有非object对象都继承自object...原创 2019-06-29 14:34:04 · 1264 阅读 · 0 评论