python秃头之路 简单的面向对象实例

定义一个列表的操作类:Listinfo

包括的方法:

1 列表元素添加: add_key(keyname) [keyname:字符串或者整数类型]
2 列表元素取值:get_key(num) [num:整数类型]
3 列表合并:update_list(list) [list:列表类型]
4 删除并且返回最后一个元素:del_key()

class Listinfo:
    listinfo=[]
    def add_key(keyname):
        Listinfo.listinfo.append(keyname)
    def get_key(num):
        return Listinfo.listinfo[num]
    def update_list(list):
        Listinfo.listinfo+=list
    def del_key():
        return Listinfo.listinfo.pop()
    def __init__ (self):
        pass

类的继承

在写类名括号后面有父类的类时
super().同名函数()
可以在重写时继承父类方法
父类名.同名函数()
也可以继承父类属性,一般使用super()方法

下面的例子实现了学校成员类,这个类登记成员的姓名,并且统计学校的总人数。老师类继承学校成员类,创建对象的时候总人数加一,老师类登记老师的工资。学生类继承学校成员类,总人数也会加一,学生类登记学生的成绩。
#对象消亡的时候,总人数会减一。

class School(object):
    """登记成员的姓名,并且统计学校的总人数
    应包含成员的职业,名字,人数"""
    num=0
    def __init__ (self,name):
        """初始化学校成员的名字和人数"""
        self.name=name
        School.num+=1
        
    def __del__(self):
        """删除操作"""
        School.num-=1
    

class Teacher(School):
    """ 继承学校成员类,创建对象的时候总人数加一,老师类登记老师的工资 """
    
    def __init__ (self,name,salary):
        """ 初始化教师对象 """
        School.__init__(self,name)
        self.salary=salary
        
        
class Student(School):
    """ 继承学校成员类,总人数也会加一,学生类登记学生的成绩 """
    
    def __init__ (self,name,grade):
        """ 初始化学生对象 """
        School.__init__(self,name)
        self.grade=grade


if __name__ == '__main__':
    xiaowang=Teacher('xiaowang',1000)
    xiaoming=Student('xiaoming',90)
    print(xiaowang.name)
    # ~ del xiaowang
    print(School.num)
    print(xiaowang.salary)

if name == ‘main’:是一个入口函数,主要用于python使用import导包时将运行部分也导入运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值