标签:lock 结合 tin 增删改查 需要 stat highlight 生活 __init__
面向对象是一种编程思想,是前辈们的经验,可以指导程序员如何写出更好的程序
核心是对象,程序就是一系列的对象的集合,程序员负责调度控制这些对象完成任务
现在我要将大象装进冰箱中
我可以找一个会这项技能的人来装大象
我只需要负责找到会这项技能的人
总结;在面向对象的过程中,程序员的角度发生了改变,从原来的执行者,变为了指挥者
注意一点,对象不是凭空产生的,是需要我们自己设计的
1 可扩展性强(比如,如果添加功能,可以不会影响其他功能)
2 重用强(可以一直重复利用)
3 灵活性强()
1 程序的复杂度提高了
2 结构无法预知了
面向对象的使用场景;对于一些扩展性强的程序,直接面向对象的
面向过程的使用场景;对于一些扩展性差的程序,比如,linex内核
内就是,内型,内别,是一种抽象的概念,是一系列具备相同特征和相同行为的对象结合
就是具体存在的某个事物,具备自己独特的特征,和行为,对象就是特征和技能的结合体
类包含对象,而对象是属于某个类的
在生活中,是先有对象,再有类的
在程序中是现有类,在有对象的
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__)
叫做初始化方法,本质就是一个函数
特点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
不常用
标签:lock 结合 tin 增删改查 需要 stat highlight 生活 __init__
原文地址:https://www.cnblogs.com/cherish937426/p/11240205.html