Python学习之路:面向对象学习
参考链接:http://www.cnblogs.com/alex3714/articles/5188179.html
cs简单实现
class Role(object): nationality = "JP" #公有属性 def __init__(self,name,role,weapon,life_value=100,money=15000): self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.money = money self.__heart = "Normal" #私有属性,对外部不可见的; def shot(self): print("%s is shooting..." %self.name) def got_shot(self): print("ah...,I got shot...") def __del__(self): print("del....run....") def get_heart(self): return self.__heart #外部提供只读接口 def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name r1 = Role('Alex','police','AK47') #生成一个角色 del r1 import time time.sleep(5) r2 = Role('Jack','terrorist','B22') #生成一个角色 #r1.shot() r2.buy_gun("B46") #r1._Role__heart#强制访问私有属性 Role.nationality = "US"#更改类的公有属性 #r1.nationality = "CN" #print(r1.nationality) print(r2.nationality)
人狗大战
def person(name,age,sex,job): def walk(p): print("person %s is walking..." %p['name']) data = { 'name':name, 'age':age, 'sex':sex, 'job':job, 'walk':walk } return data def dog(name,dog_type): def bark(d): print("dog %s:wang.wang..wang..."%d['name']) data = { 'name':name, 'type':dog_type, 'bark':bark } return data d1 = dog("李磊","京巴") print(d1['bark'](d1)) p1 = person("严帅",36,"F","运维") p2 = person("林海峰",27,"F","Teacher") print(p1['walk'](p1))
类的定义
class Dog(object): def __init__(self,name):#构造函数 构造函数 ==初始化方法 self.NAME = name#属性,成员变量 def sayhi(self):#类的方法,动态属性 print("hello, I am a dog.my name is ",self.NAME) def eat(self,food): print("%s is eating %s" %(self.NAME,food)) d = Dog("LiChuang")#实例化后产生的对象叫 实例 d2 = Dog("Chuang2") print(d) d.sayhi()#调用功能 d2.sayhi() d.eat("baozi")
类继承
class Person(object): def __init__(self,name,age): self.name = name self.age = age self.sex = "Normal" def talk(self): print("person is talking ...l") class WhitePerson(Person): pass class BlackPerson(Person):#继承父类 def __init__(self,name,age,strength):#先继承,再重构 Person.__init__(self,name,age) print(self.name) print(self.age) print(self.sex) def walk(self): print("is walking ....") b = BlackPerson("wei er smith",30,"Strong") b.talk() b.walk()
school类继承---析构
class SchoolMember(object): member = 0 def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex self.enroll() def enroll(self): print("just enrolled a new school member [%s]"%self.name) self.member += 1 def tell(self): print("---info: %s----"% self.name) for k,v in self.__dict__.items(): print("\t",k,v) print("--------end---------") def __del__(self): print("开除了[%s]..." % self.name) SchoolMember.member -= 1 class Teacher(SchoolMember): def __init__(self,name,age,sex,salary,course): SchoolMember.__init__(self,name,age,sex) self.salary = salary self.course = course def teaching(self): print("Teacher [%s] is teaching [%s]"%(self.name,self.course)) class Student(SchoolMember): def __init__(self,name,age,sex,course,tuition): SchoolMember.__init__(self,name,age,sex) self.course = course self.tuition = tuition self.amount = 0 def pay_tuition(self,amount): print("student [%s] has just paid [%s]"% (self.name,amount)) self.amount += amount t1 = Teacher("Wusir",22,"F*M",3000,"Python") s1 = Student("HaiTao",30,"M","PYS15",300000) s2 = Student("LiChuang",12,"M","PYS15",11000) print(SchoolMember.member) t1.tell() s2.tell()