什么是对象:
万物皆是对象,是类的具体体现
在Python中所有数据类型都是一个对象.
对象的特点:
1.属性
2.行为
3.封装一个整体
面向过程与面向对象:
面向过程:解决问题的过程的思路.
1.分步骤划分
2.把一个任务分步骤完成
面向对象:解决问题关注的是解决问题的对象.
1.按对象划分
2.确定对象的属性和行为
对象是过程的封装
什么是类:
类是具有相同属性或者功能的一类实物
类的定义:
class A: name = 'alex' # 静态属性,静态变量,静态字段 def func1(self): # 函数:动态属性,方法 pass
类名的使用
1.查看类所有属性的方法__dict__
2.查看(增删改)类中的某个,某些属性,某个方法,用万能的 .
3.操作方法,通过类名调用函数操作
class Person: animal = '高级动物' walk_way ='直立行走' language = '语言' def __init__(self,name,age,eye):#功能:给对象封装属性 self.name = name self.age = age self.eye = eye def set(self): pass def work(self): pass print (Person.__dict__) print(Person.__dict__['animal'])#通过__dict__单独的属性及方法可以查但是不能增删改 #工作中,学习中一般用到__dict__查看类中的所有属性及方法,不进行其他操作. #2.查看(增删改)类中的某个,某些属性,某个方法,用万能的 '.' print(Person.animal) Person.name = 'alex'#增加属性 Person.animal = '低级动物'#改属性 del Person.walk_way #删 #3.操作方法 一般不通过类名操作 Person.work(666)
对象:
实例化内部进行了三个阶段:
1.在内存中开辟一个对象空间
2.自动执行类中的__init__方法,并且将对象空间传给self参数,其他参数手动传入
3.执行__init__方法,给对象空间封装相应的属性.
class Person: animal = '高级动物' walk_way ='直立行走' language = '语言' def __init__(self,name,age,eye):#功能:给对象封装属性 self.name = name self.age = age self.eye = eye def set(self): pass def work(self): pass
obj = Person()#这个过程是一个实例化过程,他会实例化一个对象(他会在内存实例化一个对象空间)
#对象操作对象空间
#对象查看对象空间所有的属性 __dict__
print('obj.__dict__')
#对象操作对象的某个属性,增删改查 万能的 .
obj.sex = '男'#增
del obj.eve1#删
obj.eve1 = '发的'#改
#对象操作类空间的属性
prin(obj.animal)
obj.animal = '低级动物'#在对象里边增加一个animal
#对象操作类空间的方法
obj.eat()
类名称空间,对象名称空间
#公用的模板,公共框架 class GameRole: rule = '游戏规则' def __init__(self,area,nickname,hp,ad,): self.area = area self.nickname = nickname self.hp = hp self.ad = ad def attack(self): print('dsfsd') gailun = GameRole('德玛西亚','草丛伦',1000,75)#对象 #对象为什么能调用类中的属性与方法只是调用不是改变 obj.属性名 先从自己空间去找,没有此属性他会通过类对象指针从类去找,找不到,会从父类去找 对象只能查看类中的属性,不能增删改 #类能不能调用对象的属性 不能 #对象与对象之间能不能互相调用 同一个类实例化出来的对象之间是不能互相访问的 不同类实例化的对象有可能互相访问 #给对象封装属性:__init__ 任意位置