python面向对象初始进阶版 通过一道题带你认识面向对象
定义一个类
class Person:
#公共属性
animal='高级动物'
soul='有灵魂'
language='语言'
def init(self,country,name,sex,age,Height):#形参
#self是实例化对象后obj对象的地址 self.就是调用方法
self.c=country
self.n=name
self.s=sex
self.a=age
self.H=Height
print(self.n,self.s,self.n)
def sleep(self):#定义一个方法
print('我要吃饭')
def eat(self):#定义一个方法
print(f'{self.n}在吃饭')#格式化输出
def work(self):
print('工作')
4实例化对象
obj=Person('中国','alex','未知',42,175)
obj2=Person('美国','武大','男',35,160)
obj3=Person('中国','子文','男',35,160)
obj4=Person(obj.c,obj2.n,obj3.s,obj3.s,obj.H)
第四个人类对象p4属性为: p1的国籍, p2的名字, p3的性别, p2的年龄, p3
的身高.
obj.eat()#通过对象调用方法
obj2.eat()
obj3.eat()
print(obj.animal)
print(obj2.soul)
print(obj3.language)#通过方法调用类
print(obj4.dict)#打印传入init方法里面的值
传参
class Game_role:
print('欢迎来到英雄联盟')
def init(self,name='盖伦',ad=10,hp=300):
self.n=name
self.a=ad
self.h=hp
def attack(self):#形参
print(f"{obj.n}attact{obj2.n},掉了{abs(obj2.a-obj.h)}血")
obj=Game_role(name='盖伦',ad=10, hp=100)
obj2=Game_role(name='剑豪', ad=20, hp=80)
obj.attack()#实参