本章内容:
类与实例
实例属性与静态属性
实例方法与静态方法
01:面向对象的语言VS面向对象的设计
面向对象的设计:是一种设计思路
面向对象的语言:提供对面向对象设计的语言支持
非面向对象的语言也能实现面向对象的设计思路
02:类与实例
类-一类具有相同特征的食物的统称
现实不存在-抽象的概念-人类-鸟类
03:关键字 class 类名(通常首字母大写)
class Tiger:
classname=‘tiger’
classname是一个属性
04:实例
在这个类里面实际存在的个体
实例是类的具体实例化体现
05:创建实例
类名()
class Person()
#创建实例 类名()
P1= Person()
06:类--
1-特征--属性--变量
2-行为--方法--函数
07:类属性--这个类所有的实例都是一样的--共有的
name= ‘人类’
静态(类)属性--可以实例.属性,类.属性
实例属性-有些属性每一个实例不一样
初始化方法--创建实例会自动调用
def __init(self):
print('我执行了')
08:对象的方法
实例方法
def eat(self):
p1.eat()
09:具体总结概念:
类对象、类属性、实例对象、实例属性
类是一个特殊的对象即类对象
描述类的属性成为类属性
类属性在内存中只有一份,在_init_外部定义
实例方法、类方法、静态方法的区别
①实例方法是由对象调用,至少一个self参数。self代表对象的引用
②类方法有类调用,至少一个cls参数,并且需要装饰器@classmethod装饰
③静态方法由类调用,不需要参数,需要装饰器@staticmethod装饰
创建原则:
①只要访问了成员变量的方法都叫实例方法
②只要访问类变量的方法叫类方法
③既不访问成员变量,也不访问类变量的方法叫静态方法
静态方法:@staticmethod
不能访问实例属性,,参数不能传入self
与类相关但不是不依赖类与实例的方法
类方法:@classmethod
不能访问实例属性,参数必须传入cls
必须传入cls参数(即代表了此类对象--区别--self代表实例对象)
静态方法和类方法都可以通过类或者实例来调用。其两个的特点都不能够调用实例属性