一,面向对象基础

今日内容


1,面向对象的概念
2,类和对象概念
3,如何创建类和对象
4,如何设计属性
5,属性的查找顺序
6,__init__,初始化类的方法
7,绑定方法与非绑定方法

1,面向对象的概念
面向对象:是一种编程思想

面向对象的三大优点
1.扩张性
2.灵活性
3.复用性
缺点:
1.程序的复杂度提高了
2.无法准确预知结果
使用场景
对扩展性要求较高的程序 ,通常是直接面向 用户的,例如:qq,微信

2,类和对象概念
对象:具体存在的某个事物,具备一定特征和行为
是技能和特征的结合体
类: 是一系列具备相同特征和行为的对象的集合,是一种抽象的概念

类和对象的关系:
类 包含一系列对象
对象 属于某个类
1,对象是关于类而实际存在的一个例子,即实例
2,对象/实例只有一种作用:属性引用
总结出一个结论:在使用面向对象编程时,第一步就是思考需要什么样的对象,
对象具备什么样的特征和行为,从而根据 这些信息总结出需要的类型

3,如何创建类和对象
1,创建类
class 类名:
def __init__(self,参数1,参数2):
self.对象的属性1 = 参数1
self.对象的属性2 = 参数2

def 方法名(self):pass

def 方法名2(self):pass

对象名 = 类名(1,2) #对象就是实例,代表一个具体的东西(创建对象)
#类名() : 类名+括号就是实例化一个类,相当于调用了__init__方法
#括号里传参数,参数不需要传self,其他与init中的形参一一对应
#结果返回一个对象
对象名.对象的属性1 #查看对象的属性,直接用 对象名.属性名 即可
对象名.方法名() #调用类中的方法,直接用 对象名.方法名() 即可
2,创建对象的语法:
class Person:
pass

#创建对象
p = Person()

4,如何设计属性
在面向对象中,把变量名称之为数据属性,把函数名称之为函数属性
1,类中的属性是,是类中所有对象共有的,
2,对象中的属性,是对象特有的,
5,属性的查找顺序
1,如果类和对象中都有共同属性,先访问对象自身属性,如果无在访问类属性
属性的增删改
1,增加属性
对象变量名称.属性名称 = 属性值
2,修改
对象.属性 = 新的值
3,查看属性 访问的是对象的所有属性
print(对象.__dict__)
4,访问对象的类信息
print(对象.__class__)
6,__init__,初始化类的方法
# init方法
叫做初始化方法,本质上就是一个函数
特点1: 当实例化 对象时,会自动执行init方法
特点2:会自动将对象作为第一个参数传入,参数名称位self ,self可以是别的名字,但不建议改

功能:用户给对象赋初始值

7,绑定方法与非绑定方法
1,对象绑定方法(需要访问对象本身的方法就是对象绑定方法)
类里面的方法默认的都是对象绑定方法
本质不是当使用对象调用该函数时会自动传入对象本身,作为第一个参数

当使用对象调用该函数时会自动传入对象本身,作为第一个参数

当使用类名来调用时他就是一个普通函数,有几个参数就得传几个参数

在面向对象中,把变量名称之为数据属性,把函数名称之为函数属性
为什么需要对象绑定:是因为函数里面需要访问对象中的数据

2,类绑定方法
类绑定方法用@classmethod来装饰
特殊之处:不管用类还是对象调用,都会自动传入类本身,作为第一个参数
什么时候绑定给对象:当函数逻辑需要访问对象中的数据时
什么时候绑定给类:当函数逻辑需要访问类中的数据时

3.非绑定方法
也叫作静态方法,就是即不需访问类的数据,.也不需要访问对象的数据
语法:@staticmethod

原文地址:https://www.cnblogs.com/Fzhiyuan/p/11241065.html