1. 类和对象
类:具备相同特征或者行为的一个群体:
对象: 个体
类:模型 (造对象)
对象: 模型生出来(造出来)具体的东西。
2. 实例属性和类属性的区别
类属性定义:类名下面或者类外面, 可以在其他的方法当中定义,但是不建议
class 类名:
类属性1 = 属性值
def __init__(self, name):
self.name = name
类名.类属性other = 属性值。
实例属性: 类里面和类外面 __init__ 方法定义,或者 类名().实例属性
先天具备的属性,不管是类属性,实例属性,通常在类名下面, __init__ 直接定义好。
后天培养的属性,不管是类还是实例,都可以在 其他的方法当中定义, 类外面定义
实例属性和类属性的区别和联系: 类属性,可以被实例、对象访问 ;实例属性, 不可以被类获取
实例可以获取 实例属性和类属性 ;类只能获取类属性
3. 方法
3.1 方法 vS 函数:
1, self
2, 放在类里面,缩进的。
3, 调用过程不一样。 方法需要加前缀,类名或者对象名。 函数前面要么不加,要么加的模块名。
3.2 方法的调用
对象.方法() ,即:类名().方法()
3.3 实例方法 vs 类方法 vs 静态方法
3.3.1 实例方法,对象方法
1, 第一个参数名称,规定是 self,
2, 实例方法在调用的时候,前缀是对象,不能是类
3.3.2 类方法
1, 在方法的上面添加 @classmethod
2, 把实例方法当中的 self 改成 cls
3.3.3? 静态方法
静态方法表示: 方法的上面加上一个 @staticmethod 不需要用 self, cls 作为固定参数
静态方法的调用:
(静态方法是普通函数) 与普通函数的区别在于,在调用静态方法时,前面加上类名或者对象名;类外面的普通函数,在被调用时不需要加类,模块
(联系: 实例方法, 实例具备的,类不一定具备。 类不能调用实例方法 self 获取实例 类方法, 类具备的, 实例可以获取 类方法可以直接通过 cls 获取类 静态方法:放在类里面的函数。 def static_demo 类(对象).static_demo)
4. __init__
初始化:通过定义的类得到一个具体的对象,通过 __init__ 实现
通常在里面定义实例属性。
实例属性的两种定义:
第1种, 类外面: 对象名.属性
第2种, 类里面: self.属性
实例属性的值通过参数传递进来。
__init__ 定义的形式参数 和 对象的实例化 a = 类名() 的实际参数,是一一对应的。
1. 必须 return None 2. 传入的参数必须要设置成实例属性,才能被被对象访问到。
self: 在 **类里面** ,表示一个 **对象**
cls, : 在 **类里面** ,表示一个 **类**
5. self
类定义的里面表示:对象
cls, 类里面表示:类
6. 继承
父类 <---> 子类
继承如何表示:
class 子类名(父类名):
pass
继承, 继承时单边的,即只能子类继承父类
7. 重写
子类可以实现自己独有的方法。子类可以覆盖父类的方法,即 重写
8. super()
super() 超继承:使用父类中的方法
|