面向对象初识
面向对象初识
- 
面向过程开发:之前学的开发过程,求一个结果,写代码为了实现这个结果。 
- 
面向对象开发:开发一个拥有开放性结局的程序时,不注定结果,这种情况适合这种开发方法。例如游戏,购物,结果不固定。 
- 
类:python中一切皆为对象,类型的本质就是类 
- 
类有两种作用: - 
属性引用 
- 
 有如下例子 # class Person: # 类名
 # def __init__(self,name,sex,job,hp,weapon,ad):
 # # 必须叫__init__这个名字,不能改变的,所有的在一个具体的人物出现之后拥有的属性
 # self.name = name
 # self.sex = sex
 # self.job = job
 # self.level = 0
 # self.hp = hp
 # self.weapon = weapon
 # self.ad = ad
 
 # alex = Person('alex','不详','搓澡工',260,'搓澡巾',1)
 # print(alex,alex.__dict__) # 属性的查看
 # alex.name = 'alexsb' # 属性的修改
 # alex.money = 1000000 # 属性的增加
 # del alex.money # 属性的删除alex就是一个对象,alex = Person()这个过程是通过类获取一个对象的过程,即实例化 print(alex,alex.__dict__)这是对人的属性的查看,可以对属性增删改查类名() 会自动调用类中的 __init__方法
- 
- 
类与对象的关系 - 
类:是具有相同属性和相似功能的一类事物。是一个大范围,是一个模子,它约束了事物有哪些属性,但是不能约束具体的值 
- 
对象/实例:是一个具体的内容,是模子的产物,它遵循了类的约束,同时给属性赋上具体的值 
- 
空间问题 ***:类有一个空间,存储的是定义在class中的所有名字;每一个对象又拥有自己的空间,通过对象名.__dict__就可以查看这个对象的属性和值修改列表\字典中的某个值,或者是对象的某一个属性 都不会影响这个对象\字典\列表所在的内存空间
 
- 
- 
对象的属性/实例变量 self.xxx这就是实例变量 
- 
实例化后的步骤 - 
类名() 之后的第一个事儿 :开辟一块儿内存空间 
- 
调用 __init__把空间的内存地址作为self参数传递到函数内部
- 
所有的这一个对象需要使用的属性都需要和self关联起来--对象的初始化 
- 
执行完init中的逻辑之后,self变量会自动的被返回到调用处(发生实例化的地方) 
 
- 
方法初识
 class Person:       # 类名
     def __init__(self,name,sex,job,hp,weapon,ad):
         # 必须叫__init__这个名字,不能改变的,所有的在一个具体的人物出现之后拥有的属性
         self.name = name          # 对象的属性/实例变量
         self.sex = sex
         self.hp = hp
         self.ad = ad
     def 搓(self,dog):    # 方法,又有一个必须传的参数-->self对象
         dog.hp -= self.ad
         print('%s给%s搓了澡,%s掉了%s点血,%s当前血量%s'%(self.name,dog.dog_name,dog.dog_name,self.ad,dog.dog_name,dog.hp))
         
 alex.搓(小白)
__init__方法后出现的函数定义即为一个方法,注意使用方法时,外面调用传入的函数总会比定义时少一个,因为默认传入self
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号