zoukankan      html  css  js  c++  java
  • python 面向对象 新式类和经典类

     # 经典类写法
            # schoolMember.__init__(self, name, age, sex)
    
            # 新式类写法
            super(Teather, self).__init__(name, age, sex)
    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)
            schoolMember.member += 1
    
    
        def tell(self):
            print("%s info".center(40, "-") % self.name)
    
            for i in self.__dict__:  # 循环字典   t1.__dict__
                print("	", i, self.__dict__[i])
    
            print("End".center(40, "-")+"
    ")
    
    
        def __del__(self):  # 析构函数
            print("开除了 [%s]" % self.name)
            schoolMember.member -= 1
    
    
    class Teather(schoolMember):
        '''教师类'''
    
        def __init__(self, name, age, sex, salary, course):
    
            # 经典类写法
            # schoolMember.__init__(self, name, age, sex)
    
            # 新式类写法
            super(Teather, self).__init__(name, age, sex)
    
            self.salary = salary
            self.course = course
    
        def teaching(self):
            print("tearcher [%s] is teaching [%s]" % (self.name, self.course))
    
    
    
    class Student(schoolMember):
        '''学生类'''
    
        def __init__(self, name, age, sex, course, tuition):
    
            super(Student, self).__init__(name, age, sex)
    
            self.course = course
            self.tuition = tuition
            self.amount = 0
    
        def pay_tuition(self, amount):
            print("student [%s] has just paied [%s]" % (self.name, amount))
            self.amount += amount
    
    
    t1 = Teather("mike", 28, "F*M", 10000, "python")
    s1 = Student("jianlin", 21, "N/A","pythons15", 100000)
    s2 = Student("mayun", 12, "M", "pythons15", 210000)
    
    print(schoolMember.member)
    
    
    t1.tell()
    s1.tell()
    s2.tell()
    
    
    del s1
    print(schoolMember.member)
    del s2
    print(schoolMember.member)
    del t1
    print(schoolMember.member)
    
    
    
    
    '''
    just enrolled a new school member [mike]
    just enrolled a new school member [jianlin]
    just enrolled a new school member [mayun]
    3
    ----------------mike info-----------------
         name mike
         age 28
         sex F*M
         salary 10000
         course python
    ------------------End-------------------
    
    ----------------jianlin info-----------------
         name jianlin
         age 21
         sex N/A
         course pythons15
         tuition 100000
         amount 0
    ------------------End-------------------
    
    ----------------mayun info-----------------
         name mayun
         age 12
         sex M
         course pythons15
         tuition 210000
         amount 0
    ------------------End-------------------
    
    开除了 [jianlin]
    2
    开除了 [mayun]
    1
    开除了 [mike]
    0
    '''
    class Person(object):  # 新式类
    super

    class Person: # 经典类
    Person.__init__()

    现在主要写新式类

     
     
  • 相关阅读:
    SAP C4C OBN(Object Based Navigation)不能工作的原因分析
    使用SAP C4C自定义BO association创建动态下拉列表
    如何使用SAP HANA Studio的PlanViz分析CDS view性能问题
    如何使用jMeter测试SAP OData服务并发访问时的性能
    OData服务在SAP CRM,Cloud for Customer和S/4HANA上的实现比较
    SAP UI5和Vue的数据双向绑定实现原理比较
    在SAP WebClient UI里显示倒数计时的UI
    【年度重磅】2020华为云社区年度技术精选合集,700页+免费下载!
    面试必问:如何实现Redis分布式锁
    聊聊架构模式的变迁:从分层架构到微服务架构
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/8443397.html
Copyright © 2011-2022 走看看