class Human(): animal = "高级动物" languae = '语言' walk_way = "直立行走" def __init__(self,name,age,eye): self.name = name self.age = age self.eye = eye print("对象初始化成功。。。") def work(self): print("是人就须要工做,否则的话,饿死") def eat(self): print("一天不吃饭,头晕眼睛花.....")human = Human('chris',18,"美丽的大眼睛")print(Human.__dict__) # 查看类的全部属性及方法# 对象操做对象空间print(human.__dict__) # 查看对象的全部属性及方法# 对象操做对象空间的属性print(human.name) # 查看对象的属性human.sex = 'male' # 增长对象的属性print(human.sex)human.eye = "双眼皮" # 修改对象的属性print(human.eye)del human.sex # 删除对象的属性# print(human.sex) # AttributeError: 'Human' object has no attribute 'sex'# 对象操做类空间的属性 只能查看,不能修改print(human.animal) # 查看类的属性,查看对象属性,先到对象空间找,再找类空间找human.animal = "低级动物" # 看似修改,实际是在对象空间,增长一个属性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("谁施展了一个攻击")gailun = GameRole('德玛西呀','草丛伦',1000,75)yasuo = GameRole('艾欧尼亚','托儿所',500,150)# 1 对象为何能调用类中的属性与方法,并且只是调用,不能改变?# gailun.属性名 先从本身空间去找,没有此属性他会经过 类对象指针 去类中找,类中找不到,会从父类去找# print(gailun.hp)print(gailun.attack)gailun.attack = 666 # 对 对象的属性 进行 赋值,若是该对象存在此属性,则是修改,不存在,则是增长属性。print(gailun.attack)gailun.rule = gailun.ruleprint(gailun.rule)# 对象只能查看类的属性,不能修改类的属性# 同一个实例化的对象之间不能相互调用# 不一样类实例化的对象之间能够相互调用。print(gailun.attack)print(yasuo.attack)print(GameRole.attack)GameRole.attack(gailun) # 当类调用其普通方法时,不会主动传参,要在达到对象调用时的效果,就将对象空间手动传递gailun.attack() # 对象调用方法,会自动将对象的地址传方法的第一个参数