一.什么是类?
拥有相同属性和功能的对象的集合(抽象的概念)
定义--- class 类名称:
二.什么是对象(类实例)?
就是类的实体
定义--- cl = 类名称()
三.什么是属性?
类或对象的一个特征,是一个名词;
1.类属性:
(1) 类属性的创建:写在类里面函数外面;
class demo01:
name="小明"
( 2 ) 访问:
类的内部:self.属性名称
在类外面:类实例.属性名称、类.属性名称
( 3 ) 特点
1、类属性不需要实例化类就能进行访问
2、类属性也可以通过类实例进行访问
3、类实例访问类属性(如果实例属性与类属性同名),实例属性优先级比类属性高
2.实例属性:
(1)def __init__(self,name,age):
初始化方法,在类实例化的过程中自动执行
初始化函数的参数在类实例化的时候一起传入,传参方式和函数传参一致cl = TestDemo(age=20,name="郭德纲")
(2)实例属性创建:实例属性定义在初始化函数__init__()中,使用self.变量名作为变量名
(3)访问:
类的内部:self.属性名称
在类外面:类实例.属性名称
类不能访问实例属性
(4)特点
1、实例属性只能在实例化之后才能访问
2、类不能访问实例属性
3私有属性
(1)在类的外面不能被访问的属性,私有属性只能在类的内部使用
(2)私有属性通过双下划线开头进行定义:__name、 self.__age
四.什么是方法?
类或对象的一个行为,动作
(1)实例方法【掌握】:
1、创建
def test_01(self)
第一个参数必须是类实例对象,通常使用self来接收(见名知意)
2、调用
类里面:self.方法名称()
类外面:类实例.方法名称()
3、特点
只能通过类实例调用
4、使用场景
方法里面需要访问实例属性或实例方法的时候你就定义实例方法
(2)类方法【掌握】
1、创建
通过@classmethod装饰器修饰的方法
第一个参数必须是类本身,一般使用cls类接收
2、调用
类里面:类.方法名() self.方法名()
类外面:类实例.方法名() 类.方法名()
3、特点
1、类方法可以访问类属性、类方法
2、类方法不可以访问实例属性、实例方法
3、第一个参数必须是类本身,一般使用cls类接收
4、使用场景
方法不需要访问实例属性或者是实例方法,就定义为类方法
类方法、实例方法总结【掌握】
类:访问类属性、类方法
类.属性名称 类.方法名称()
使用场景:方法不需要访问实例属性或者是实例方法,就定义为类方法
类实例:访问所有的属性、方法
类实例.属性名称 类实例.方法名称()
使用场景:方法里面需要访问实例属性或实例方法的时候你就定义实例方法
(3)私有方法
1、创建
通过双下划线进行定义def __test_02(self):
2、调用
在类里面:self.__test_02()
在类外面:不能被调用,强行访问cl._TestDemo__test_02()
3、特点
1、只能在当前类里面使用
2、不能被继承
4、使用场景
1、在类里面不希望被外部调用的方法就写成私有方法(属性也一样)
类的特性:
1、继承:子类继承父类,就拥有了父类的所有方法和属性(私有方法和属性除外)
2、封装:隐藏内部的实现,对外公开接口或者方法
3、多态:一个事物有多种形态
什么是封装?
隐藏对象的属性和实现细节,仅对外公开一个接口(一个方法)