什么是对象:
万物皆是对象,是类的具体体现
在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__ 任意位置