对象
类
类是抽象的模板;
1.定义类是通过class
关键字
2.类名通常是大写开头的单词,紧接着是(object)
,表示该类是从哪个类继承下来的
ps:和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数
实例
实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同;
1.创建实例是通过类名+()实现的
2.可以自由地给一个实例变量绑定属性
3.Python 严格要求方法需要有实例才能被调用,这种限制其实就是 Python 所谓的绑定概念。通过__init__
方法,把一些我们认为必须绑定的属性强制填写进去
ps:__init__
方法的第一个参数永远是self
,表示创建的实例本身
封装:信息隐蔽技术
继承:子类自动共享父类之间数据和方法的机制
多态:不同对象对同一方法响应不同的行动
公有和私有
在 Python 中定义私有变量只需要在变量名或函数名前加上“__”两个下划线,那么这个函数或变量就会为私有的了
继承
当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class),子类获得了父类的全部功能
判断一个变量是否是某个类型可以用isinstance()
判断
type()
不会认为子类是一种父类类型,不考虑继承关系
ps:如果第一个参数不是对象,则永远返回False
。
如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError
异常。
在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就不行