day6

测试
#Author:walter
class Dog:
def __init__(self,name):
self.name = name

def bulk(self):
print("%s:wang wang wang"%self.name)

d1 = Dog("lzq")
d2 = Dog("walter")
d3 = Dog("aqing")

d1.bulk()
d2.bulk()
d3.bulk()



游戏
#Author:walter

class Role:
n=123 #类变量 大家共用的属性,节省开销
name = "我是类name"
def __init__(self,name,role,weapen,life_value=100,money=100):
#构造函数
#在实例化是做一些类的初始化的工作
self.name = name #实例变量(静态属性),作用域就是实例本省
self.role = role
self.weapem = weapen
self.life_value = life_value
#self.__life_value = life_value ##加下划线两次,成为私有属性,只能在函数中访问,最后角色不能直接访问
self.money = money

def __del__(self): #析构函数:在实例释放、销毁的时候执行,通常用于做一些收尾工作,如关闭一些数据库连接,关闭打开的临时文件
print("%s彻底死了、、、"%self.name)
#析构函数常用del role 手动删除,否则最后自动删除
def shot(self): #类的方法,功能(动态属性)
print("shooting...")

def got_shot(self):
print("ah........,I got shot ....")

def buy_gun(self,gun_name):
print("%s just bougrt %s"%(self.name,gun_name))

print(Role)
r1 = Role('lzq','police','ak47') #把一个类变成一个具体对象的过程叫实例化(初始化一个类,造了一个对象)
r1.name = "Lzq" #改名
r1.got_shot()
r1.buy_gun("b51")
r1.bullet_prove = True
print("r1")

r2 = Role('walter','thief','m-15') #生成一个角色
print(r2.n,r1.name)
# r2.got_shot() #Role.got_shot(r2)



继承
#Author:walter
#class People: #经典写法
class People(object): ##新式类写法
def __init__(self,name,age,):
self.name = name
self.age = age
self.friends = []
def drink(self):
print("%s is drink...."%self.name)
def eat(self):
print("%s is drink...."%self.name)
def sleep(self):
print("%s is sleep..."%self.name)
def talking(self):
print("%s is talking...")
class Relation(object):
def make_friends(self,obj):
print("%s is make friend with %s"%(self.name,obj.name))
self.friends.append(obj)

class Man(People,Relation):##继承people的属性
def __init__(self,name,age,money):
#People. __init__(self,name,age) ###属性添加属性
super(Man,self).__init__(name,age) ##y用法同上此方法更方便,新式类写法
self.money = money
print("%s一出生就有%s元的钱"%(self.name,self.money))
def sport(self):
print("%s is play basketball..."%self.name)
def paly_game(self):
print("%s is paly lol...."%self.name)
def sleep(self): ##添加单独属性
People.sleep(self)
print("%s man is sleep..."%self.name)

class Women(People,Relation):
def shopping(self):
print("%s is shopping..."%self.name)
def get_birth(self):
print("%s is get a baby"%self.name)

m1 = Man('lzq',28,1000)
# m1.eat()
# m1.paly_game()
# m1.sleep()

m2 = Women('LZF',26)
# m2.shopping()
# m2.get_birth()

m1.make_friends(m2)
m2.name = "lzf"
print(m1.friends[0].name)
##在python2上,经典类按照深度优先继承,新式类(object)按照广度优先继承
##在python3上,经典、新式都是按照广度优先继承



继承学校
#Author:walter
class School(object):
def __init__(self,name,addr):
self.name = name
self.addr = addr
self.students = []
self.staffs = []
def enroll(self,stu_obj):
print("为学员%s办理注册手续"%stu_obj.name)
self.students.append(stu_obj)
def hire(self,staff_obj):
print("雇佣%s为新员工" %staff_obj.name)
self.staffs.append(staff_obj)

class SchoolMember(object):
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def tell(self):
pass

class Teacher(SchoolMember):
def __init__(self,name,age,sex,salary,couse):
super(Teacher, self).__init__(name,age,sex)
self.salary = salary
self.couse = couse
def tell(self):
print('''
---info of teacher %s---
name:%s
age:%s
sex:%s
salary:%s
couse:%s
'''%(self.name,self.name,self.age,self.sex,self.salary,self.couse))
def teach(self):
print("%s is teache couse \033[31;1m%s\033[0m"%(self.name,self.couse))
def Salary(self):
print("%s salary is %s"%(self.name,self.salary))

class Student(SchoolMember):
def __init__(self,name,age,sex,stu_id,grade):
super(Student, self).__init__(name, age, sex)
self.stu_id = stu_id
self.grade = grade
def tell(self):
print('''
---info of student %s---
name:%s
age:%s
sex:%s
stu_id :%s
grade:%s
''' % (self.name,self.name,self.age,self.sex,self.stu_id,self.grade))
def pay_tuition(self,amount):
print("%s has paid tution for [¥%s]"%(self.name,amount))

school = School("广州华南商贸职业学院","广州")
t1 = Teacher("lzq",28,"M",5000,"创新创业")
t2 = Teacher("lzf",26,"W",4000,"computer")

s1 = Student("XiaoLi",20,"W",123456,"computer")
s2 = Student("XiaoFang",20,"W",123456,"computer")

t1.tell()
t2.tell()
s1.tell()
s1.tell()

school.hire(t1)
school.hire(t2)

school.enroll(s1)
school.enroll(s2)

print(school.students)
print(school.staffs)
school.staffs[0].teach()
school.staffs[1].teach()

for stu in school.students:
stu.pay_tuition(5000)


Teacher.Salary(t1)
Teacher.Salary(t2)


posted @ 2018-08-28 00:44  walter清  阅读(107)  评论(0编辑  收藏  举报