面向对象:
1)是一种抽象(用分类的眼光看事物)。
2)两个基本概念:类(定义一件事物的抽象特点)对象(类的实例)
3)eg:coder(class)->张三(object)
面向对象的基本要素:定义类的属性和方法
1)属性:coder(name,sex,height,weight,salary....)
2)方法(功能):coding,repair computer...
类的特性:
1)封装:用户只知道如何使用这个类,不需要知道这个类是如何实现的。程序把实现的过程封闭起来就叫做类的封装。
2)继承:coder->后端coder->c、java、python coder,子类获得父类所有的功能。
3)多态:有继承才有多态。eg. Python coder 既是后端coder也是coder,若coder里面定义了一个write功能,只要是coder类或者子类,都会调用write。这就是多态。
继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。
内建函数:
1)dir():返回对象的属性
2)Type():获取对象类型
访问控制之变量说明:
XXX:谁都可以访问
_XXX:外部可访问,但是请视为私有变量,不要随意访问
__XXX:外部不可访问,私有变量,要访问有方法(实例名._类名__XXX,见eg)
__XXX__:特殊变量,可直接访问。
总结:不提供私有属性,全靠自觉。
附网上摘抄小段子(有点污哈哈哈):
但是python仍然可以用实例名._类名__girl强上贞女
Coding && Result:
Coding && Result:
定义类的方法:
1)@classmethod:调用的时候用类名,而不是某个对象
2)@property:像访问属性一样调用方法
Coding && Result:
继承:
Coding && Result: