17:类对象、实例对象、类属性、实例属性、类方法、实例方法、静态方法

本章内容:

类与实例

实例属性与静态属性

实例方法与静态方法

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()

image.png

image.png

09:具体总结概念:

类对象、类属性、实例对象、实例属性

类是一个特殊的对象即类对象

描述类的属性成为类属性

类属性在内存中只有一份,在_init_外部定义

实例方法、类方法、静态方法的区别

①实例方法是由对象调用,至少一个self参数。self代表对象的引用

②类方法有类调用,至少一个cls参数,并且需要装饰器@classmethod装饰

③静态方法由类调用,不需要参数,需要装饰器@staticmethod装饰

创建原则:

①只要访问了成员变量的方法都叫实例方法

②只要访问类变量的方法叫类方法

③既不访问成员变量,也不访问类变量的方法叫静态方法

image.png

静态方法:@staticmethod

不能访问实例属性,,参数不能传入self

与类相关但不是不依赖类与实例的方法

类方法:@classmethod

不能访问实例属性,参数必须传入cls

必须传入cls参数(即代表了此类对象--区别--self代表实例对象)

静态方法和类方法都可以通过类或者实例来调用。其两个的特点都不能够调用实例属性

原文地址:https://www.cnblogs.com/kelly11/p/13503496.html