摘要:
python是弱类型语言,其最明显的特征是在使用变量时,无需为其指定具体的数据类型。这会导致一种情况,即同一变量可能会被先后赋值不同的类对象。 可以看到,a可以被先后赋值为xiaobai类和lilei类的对象,但这并不是多态。类的多态特性,还要满足以下2个前提条件: 1. 继承:多态一定是发生在子类 阅读全文
摘要:
python子类会继承父类所有的类属性和类方法。严格来说,类的构造方法其实就是实例方法,因此,父类的构造方法,子类同样会继承。 我们知道,python是一门支持多继承的面向对象编程语言,如果子类继承的多个父类中包含同名的类实例方法,则子类对象在调用该方法时,会优先选择排在最前面的父类中的实例方法。显 阅读全文
摘要:
1. 如果想实现与某个内置类型具有类似行为的类时,最好的方法就是将这个内置类型子类化。 2. 内置类型子类化,其实就是自定义一个新类,使其继承有类似行为的内置类,通过重定义这个新类实现指定的功能。 其实很多类都是对python内置类的部分实现,它们作为子类的速度更快,代码更整洁。 对list进行子类 阅读全文
摘要:
如何调用被重写的方法 事实上,如果我们在子类中重写了从父类继承来的类方法,那么当在类的外部通过子类对象调用该方法时,python总是会执行子类中的重写的方法。 注意:使用类名调用其类方法,python不会为该方法的第一个self参数自动绑定值,因此采用这种调用方法,需要手动为self参数赋值。 阅读全文
摘要:
继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想将现有类代码复制给新类。也就是说,通过继承这种机制,可以实现类的重复使用。 关于python的多继承 使用多继承经常需要面临的问题是,多个父类中包含同名的类方法。对于这种情况,python的 阅读全文
摘要:
事实上,python封装特性的实现纯属“投机取巧”,之所以类对象无法直接调用私有方法和属性,是因为底层实现时,python偷偷改变了它们的名称。 python在底层实现时,将它们的名称都偷偷改成了"_类名__属性(方法)名"的格式 总结: python类中所有的属性和方法,都是公有的,如果希望pyt 阅读全文
摘要:
封装:即在设计类时,刻意的将一些属性和方法隐藏在类的内部,这样将无法直接以"类对象.属性名"(或者"类对象.方法名(参数)")的形式调用这些属性(或方法),而只能用未隐藏的方法间接的操作这些隐藏的属性和方法。 1. 封装机制保证了类内部数据结构的完整性,很好的避免了外部对内部数据的影响,提高了程序的 阅读全文
摘要:
1.通过@property装饰器,可以直接通过方法名来访问方法,不需要在方法名后添加一对“()”小括号。 上面程序中,使用@property修饰了say()方法,这就使得该方法变成了name属性的getter方法。 2.使用setter装饰器,可以为say方法添加setter方法。 3.使用dele 阅读全文