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()

 

posted @ 2018-01-15 15:54  Py小白  阅读(140)  评论(0编辑  收藏  举报