Python类的基础使用和继承案例分析

一、类的定义

在Python中,类是一种面向对象的编程概念,它允许你定义一种数据类型,包括数据成员和方法。以下是一个简单的矩形类的定义例子:

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    
    def getArea(self):
        area = self.width * self.height
        return area
    
    def getPerimeter(self):
        perimeter = (self.width + self.height) * 2
        return perimeter

这个类包含两个数据成员(宽度和高度)和两个方法(求面积和周长)。

二、创建类对象

通过类定义,我们可以创建类的对象并调用其方法:

rect = Rectangle(3, 5)
print('此矩形的宽为:', rect.width)
print('此矩形的高为:', rect.height)
print('此矩形的面积为:', rect.getArea())
print('此矩形的周长为:', rect.getPerimeter())

这段代码创建了一个矩形对象,设置了宽度和高度,然后输出矩形的相关信息。

三、类的属性和方法

类中的属性可以分为实例属性和类属性。实例属性在方法内部通过self.属性定义,而类属性在所有方法之外定义。方法可以分为实例方法、类方法和静态方法。实例方法至少包含一个对象参数,通过self.方法()调用。

四、类的继承和重写

Python支持类的继承和方法的重写。下面是一个继承和重写的例子:

class Person:
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
    
    def working(self):
        print(self.name, '正在工作')
    
    def show(self):
        print('姓名:{}\n年龄:{}\n性别:{}\n'.format(self.name, self.age, self.sex))

class Student(Person):
    def __init__(self, name, age, sex, major):
        super().__init__(name, age, sex)
        self.major = major
    
    def show(self):
        Person.show(self)
        print('专业:', self.major)

# 使用示例
s = Student(name='张三', age='20', sex='男', major='通信学院智联网')
s.working()
s.show()

这个例子中,Student类继承自Person类,并重写了show方法。

五、综合案例分析

假设我们有一个学生类,包括两个子类LevelStPassSt,分别表示根据成绩计算等级和判断是否通过。下面是一个简单的例子:

class Student:
    def __init__(self, name='', grade=0):
        self.name = name
        self.grade = grade
    
    def setname(self, name):
        self.name = name
    
    def setgrade(self, grade):
        self.grade = grade
    
    def getname(self):
        return self.name
    
    def show(self):
        print('%s\t   %s' % (self.name, self.calclevel()))

class LevelSt(Student):
    def calclevel(self):
        if self.grade >= 90:
            return 'A'
        elif self.grade >= 80:
            return 'B'
        elif self.grade >= 70:
            return 'C'
        elif self.grade >= 60:
            return 'D'
        else:
            return 'E'

class PassSt(Student):
    def calclevel(self):
        if self.grade >= 60:
            return '通过'
        else:
            return '不通过'

这个例子中,LevelStPassSt类分别继承自Student类,并重写了calclevel方法。

六、综合案例应用

在实际应用中,可以通过创建学生对象并存储在列表中,然后按照一定的规则展示学生成绩等信息。

# 定义学生列表
def list_St():
    listOfSt = []
    is_continue = 'Y'
    while is_continue in ['y', 'Y', 'YES', 'yes']:
        name = input('请输入名字:')
        grade = float(input('请输入成绩:'))
        choice = input('请选择(L or P):')
        if choice == 'L':
            student = LevelSt(name, grade)
        elif choice == 'P':
            student = PassSt(name, grade)
        listOfSt.append(student)
        is_continue = input('是否继续输入(Y/N):')
    return listOfSt

# 显示学生列表
def show_St(listOfSt):
    print('姓名\t   成绩')
    print('----------------')
    for student in listOfSt:
        student.show()

# 主程序
if __name__ == "__main__":
    students = list_St()
    students.sort(key=lambda x: x.getname())
    show_St(students)

这个程序通过用户输入学生信息,创建不同类型的学生对象,并按照姓名排序后展示学生成绩等信息。

结语

这篇文章介绍了Python中类的基础使用和继承的概念,并通过实例代码演示了类的定义、对象创建、属性和方法的使用,以及继承和重写的应用。通过综合案例分析,展示了如何在实际应用中利用类和继承来构建更复杂的程序结构。希望这篇文章能够帮助你更好地理解和应用Python中的面向对象编程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值