面向对象 一
Posted cherish937426
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象 一相关的知识,希望对你有一定的参考价值。
1 什么是面向对象
面向对象是一种编程思想,是前辈们的经验,可以指导程序员如何写出更好的程序
核心是对象,程序就是一系列的对象的集合,程序员负责调度控制这些对象完成任务
例如;
现在我要将大象装进冰箱中
我可以找一个会这项技能的人来装大象
我只需要负责找到会这项技能的人
总结;在面向对象的过程中,程序员的角度发生了改变,从原来的执行者,变为了指挥者
注意一点,对象不是凭空产生的,是需要我们自己设计的
2优点
1 可扩展性强(比如,如果添加功能,可以不会影响其他功能)
2 重用强(可以一直重复利用)
3 灵活性强()
3 缺点
1 程序的复杂度提高了
2 结构无法预知了
面向对象,面向过程的使用场景
面向对象的使用场景;对于一些扩展性强的程序,直接面向对象的
面向过程的使用场景;对于一些扩展性差的程序,比如,linex内核
类 和对 象
1 什么是类
内就是,内型,内别,是一种抽象的概念,是一系列具备相同特征和相同行为的对象结合
2 什么是对象
就是具体存在的某个事物,具备自己独特的特征,和行为,对象就是特征和技能的结合体
3 类和对象的关系
类包含对象,而对象是属于某个类的
在生活中,是先有对象,再有类的
在程序中是现有类,在有对象的
创建类和对象
创建类的格式语法
class 类的名字(需要建名知意,大驼峰命名规则): # 类的属性,即变量赋值 # 类的技能,即函数
创建对象的格式语法
class Dog: pass ? # 创建了一个对象 dog = Dog()
属性的写法
""" 属性是可以写在类中 写在类中的属性是公用的 ? 属性也是可以写在对象中的 写在对象中的属性是对象独有的 ? 如果类中和对象中都有一样的属性,先访问对象自身的,如果没有就访问类中的,如果都没有就报错 """ # 例如 class Dog: # 类属性,公用的 cloler = red # 创建一个对象 dog = Dog() # 写对象属性 dog.name = "二哈" dog.read = "黑白"
属性的增删改查
增加属性;
对象名.属性名 = 属性值
删除属性;
关键字 del 对象名.属性名
修改属性;
重新赋值给属性名(将原来属性值1,改为属性值2)
对象名.属性名1 = 属性值1
对象名.属性名1= 属性值2
查看属性
访问对象的所有属性
print(对象.__dict__)
访问对象的类信息
print(对象.__class__)
init 方法
叫做初始化方法,本质就是一个函数
特点1
当实例化对象时,会自动执行init方法
特点2
会自动将对象作为第一个参数传入,参数名为self,self可以是别名
class Dog: def __init__(self,name,age): self.name = name self.age = age dog1 = Dog("二哈",12) dog2 = Dog("金毛",12) ?
对象的精髓就是将数据,和处理数据的函数整合到一起,我们拿到的对象就同时拿到了数据,和处理数据的函数
注意;初始化方法不仅仅用来赋值,还可以执行其它代码
绑定方法
对象的绑定方法
在默认的情况下类中的方法就是对象绑定方法
就是在调用函数时,传入的第一个参数就是调用它的对象
如果用类来调用改方法,有几个参数就得传几个参数
class Dog: def __init__(self,name.age): self.name = name self.age = age def eat(self): print("eat")
类绑定方法
类绑定方法用@classmethod来装饰
什么时候绑定给对象:当函数逻辑需要访问对象中的数据时
什么时候绑定给类:当函数逻辑需要访问类中的数据时
非绑定方法
或叫做静态方法,就是即不需访问类的数据,.也不需要访问对象的数据
语法:@staticmethod
不常用
以上是关于面向对象 一的主要内容,如果未能解决你的问题,请参考以下文章