2017年6月4日

定制类

摘要: 上例实现了 Fib数列类,还支持迭代、切片,只要想得到,就可以利用__iter__、__getitem__等函数对类进行改造,让自定义的类也拥有列表、迭代的特性。 该例子实现了字典表的增、删、改、查 下面这个例子是为了简便进行动态调用而写的,利用了__getattr__函数的特性,如果我们调用的方法 阅读全文

posted @ 2017-06-04 22:57 vonkimi 阅读(115) 评论(0) 推荐(0) 编辑

2017年6月3日

@property的用法

摘要: 实例的属性有些是需要进行约束的,比如分数、年龄都需要是整形,而不能是浮点数类型,因此为了约束这些属性的取值,可以在类的定义中定义赋值和取值函数,在赋值函数中对变量的取值进行约束,如下所示 但是这么做每次对变量赋值都需要调用函数,能否不调用函数,而直接像使用属性一样取值赋值呢,答案是可以的,就需要用到 阅读全文

posted @ 2017-06-03 20:05 vonkimi 阅读(200) 评论(0) 推荐(0) 编辑

动态绑定方法与 __slots__

摘要: Python属于动态语言,可以在类定义之外为实例新增属性与方法。 步骤为新建实例,然后定义需要新增的方法,引入MethodType函数,MethodType函数的原型为method(function, instance) MethodType把函数绑定到实例中,然后在实例s中新建一个link指向该函 阅读全文

posted @ 2017-06-03 19:22 vonkimi 阅读(139) 评论(0) 推荐(0) 编辑

获取对象的信息

摘要: 使用type获取对象的类型,如下: 输出如下: 但是用type获取对象的类型再做比较十分不便,所以一般用isinstance()函数 输出为: 还可以判断某个对象是否为列出的类型中的一种,如下: 使用dir()函数可以获取对象的所有属性与方法,还可以使用hasattr(对象,属性)来判断某个对象是否 阅读全文

posted @ 2017-06-03 16:47 vonkimi 阅读(107) 评论(0) 推荐(0) 编辑

2017年6月2日

super的用法

摘要: 输出如下: 继承的基类的次序是根据MRO来决定的。 阅读全文

posted @ 2017-06-02 23:03 vonkimi 阅读(150) 评论(0) 推荐(0) 编辑

继承和多态

摘要: 类可以继承自基类,也可以被子类继承,比如Animal继承自object类,而自身又可以被Dog和Cat类继承 继承的子类拥有了基类的全部属性和方法,而且子类还可以在基类的基础上新增属性或者方法,如下代码在子类中重写了初始化函数,因此子类初始化就按自己定义的初始化函数进行,但是下面的代码在prints 阅读全文

posted @ 2017-06-02 22:41 vonkimi 阅读(241) 评论(0) 推荐(0) 编辑

摘要: 类的定义 class 类名(继承的基类): 如: Student类继承自object类,类定义好了,就可以用类创建实例,如使用bart=Student(),然后可以给实例绑定任意属性,如: 相当于bart实例中绑定了others属性,因为有些属性是类一定需要绑定的,所以我们可以在创建实例时对实例对象 阅读全文

posted @ 2017-06-02 21:45 vonkimi 阅读(112) 评论(0) 推荐(0) 编辑

2017年5月30日

python变量和作用域

摘要: python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量;E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;G:globa,全局变量,就是模块级别定义的变量; B:built-in,系统固定模块里面的变量,比如int, b 阅读全文

posted @ 2017-05-30 23:55 vonkimi 阅读(160) 评论(0) 推荐(0) 编辑

2017年5月25日

模块

摘要: 包结构 建包首先建立一个文件夹,文件夹名即为包名,在文件夹中新建一个__init__.py文件,可以为空,也可以写入包的信息,然后在这个文件夹中新建py文件,之后如果要在外面引用该包内的模块,就直接import 模块名(包名为头),调用模块内部函数时,前面要加模块名。包的内部还可以建立文件夹,建立下 阅读全文

posted @ 2017-05-25 23:29 vonkimi 阅读(120) 评论(0) 推荐(0) 编辑

装饰器

摘要: 装饰器就是返回函数的实际运用,装饰器接受一个原函数作为参数,返回值是一个现函数,调用装饰器就可以在原函数调用前后进行操作,而不改变原函数。 以上述代码为例,now为原函数,log为装饰器,log接受函数func作为输入参数,返回wrapper函数作为返回值,而wrapper函数在func函数调用前打 阅读全文

posted @ 2017-05-25 00:10 vonkimi 阅读(83) 评论(0) 推荐(0) 编辑

导航