zoukankan      html  css  js  c++  java
  • 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("	",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()
    
  • 相关阅读:
    日积月累flex4细节上的改变
    flex3:dragdrop全攻略(二)
    理解自定义组件
    两个mxml页面的跳转问题
    日积月累12个flex常用功能代码(转载)
    flex开源工具整理
    二叉树学习(上)
    实现数据库同步备份 过程结果分析
    ASP.NET服务器对于请求的处理过程
    C#泛型
  • 原文地址:https://www.cnblogs.com/xiaobai005/p/8288446.html
Copyright © 2011-2022 走看看