摘要:上例实现了 Fib数列类,还支持迭代、切片,只要想得到,就可以利用__iter__、__getitem__等函数对类进行改造,让自定义的类也拥有列表、迭代的特性。 该例子实现了字典表的增、删、改、查 下面这个例子是为了简便进行动态调用而写的,利用了__getattr__函数的特性,如果我们调用的方法
阅读全文
摘要:实例的属性有些是需要进行约束的,比如分数、年龄都需要是整形,而不能是浮点数类型,因此为了约束这些属性的取值,可以在类的定义中定义赋值和取值函数,在赋值函数中对变量的取值进行约束,如下所示 但是这么做每次对变量赋值都需要调用函数,能否不调用函数,而直接像使用属性一样取值赋值呢,答案是可以的,就需要用到
阅读全文
摘要:Python属于动态语言,可以在类定义之外为实例新增属性与方法。 步骤为新建实例,然后定义需要新增的方法,引入MethodType函数,MethodType函数的原型为method(function, instance) MethodType把函数绑定到实例中,然后在实例s中新建一个link指向该函
阅读全文
摘要:使用type获取对象的类型,如下: 输出如下: 但是用type获取对象的类型再做比较十分不便,所以一般用isinstance()函数 输出为: 还可以判断某个对象是否为列出的类型中的一种,如下: 使用dir()函数可以获取对象的所有属性与方法,还可以使用hasattr(对象,属性)来判断某个对象是否
阅读全文
摘要:输出如下: 继承的基类的次序是根据MRO来决定的。
阅读全文
摘要:类可以继承自基类,也可以被子类继承,比如Animal继承自object类,而自身又可以被Dog和Cat类继承 继承的子类拥有了基类的全部属性和方法,而且子类还可以在基类的基础上新增属性或者方法,如下代码在子类中重写了初始化函数,因此子类初始化就按自己定义的初始化函数进行,但是下面的代码在prints
阅读全文
摘要:类的定义 class 类名(继承的基类): 如: Student类继承自object类,类定义好了,就可以用类创建实例,如使用bart=Student(),然后可以给实例绑定任意属性,如: 相当于bart实例中绑定了others属性,因为有些属性是类一定需要绑定的,所以我们可以在创建实例时对实例对象
阅读全文