# 植物大戰殭屍 class Plant(object): """ 植物類 """ def __init__(self, name, attack, hp): """ 初始化 :param name:植物名 :param attack: 攻擊力 :param hp: 血量 """ self.name = name self.attack = attack self.hp = hp def fight(self, zombie): """ 攻擊js,使js掉血 :param js: 攻擊對象 :return: None """ zombie.hp -= self.attack class Zombie(object): """ 殭屍類 """ def __init__(self, name, hp, attack): """ 初始化 :param name: 殭屍名 :param hp: 血量 :param attack: 攻擊力 """ self.name = name self.hp = hp self.attack = attack def eat(self, plant): """ 殭屍吃plant :param plant: 吃的對象 :return: None """ plant.hp -= self.attack lvluo = Plant("綠蘿", 20, 100) js1 = Zombie("殭屍1號", 100, 5) lvluo.fight(js1) js1.eat(lvluo) print(lvluo.hp) # 95 print(js1.hp) # 80
class Person(object): """ Person類 """ def __init__(self, name, id=None): """ 初始化 :param name: 姓名 :param id: 身份證號碼 """ self.name = name self.id = id def display(self): """ 展現有無身份證 :return: None """ if self.id: print("我叫%s, 個人身份證號碼爲%s" % (self.name, self.id)) else: print("我未成年,沒有身份證!!!") class Id(object): """ Id類 """ def __init__(self, name, num): """ 初始化 :param name: 姓名 :param num: 身份證號 """ self.name = name self.num = num p_id = Id("Tom", 123456789) p1 = Person("Tom", p_id.num) p1.display() # 我叫Tom, 個人身份證號碼爲123456789
class Teacher(object): """ Teacher類 """ def __init__(self, name, lst=None): """ 初始化 :param name: 姓名 :param lst: 學生列表 """ self.name = name if lst == None: self.lst = [] else: self.lst = lst def add(self, student): """ 添加學生 :param student: 學生對象 :return: None """ self.lst.append(student) def display(self): """ 打印學生姓名 :return: None """ for el in self.lst: print(el.name) class Student(object): """ Student類 """ def __init__(self, name, num): """ 初始化 :param name: 姓名 :param num: 學號 """ self.name = name self.num = num # 建立對象 t = Teacher("Tom") s1 = Student("andy", 1) s2 = Student("Linda", 2) # 把學生添加給老師 t.add(s1) t.add(s2) t.display() 結果: andy Linda
class Base(object): def __init__(self, num): self.num = num def func1(self): print(self.num) class Foo(Base): pass obj = Foo(123) # 調用__init__方法,本身沒有,找父類 obj.func1() # 123
Next:app
class Base(object): def __init__(self, num): self.num = num def func1(self): print(self.num) self.func2() def func2(self): print("Base.func2") class Foo(Base): def func2(self): print("Foo.func2") obj = Foo(123) obj.func1() 結果: 123 Foo.func2
Next:spa
class Base(object): def __init__(self, num): self.num = num def func1(self): print(self.num) self.func2() def func2(self): print(111, self.num) class Foo(Base): def func2(self): print(222, self.num) lst = [Base(1), Base(2), Foo(3)] for obj in lst: obj.func1() 結果: 1 111 1 2 111 2 3 222 3