Python基础——类与面向对象

Python基础——类与面向对象


1. 类的定义与实例化

1.1 类的属性和方法

对象是对现实中实物的一种抽象,对象由属性和方法组成。在这里我们创建一个类作为例子:

class Student():
    """学生类,是对一个学生的抽象化表示"""

    def __init__(self, name, student_id):
        """初始化属性name和student_id"""
        self.name = name
        self.student_id = student_id

    def study(self):
        """表示该学生在学习"""
        print("Student " + self.name + " is studying.")

    def exam(self):
        """表示该学生正在考试"""
        print("Student " + self.name + " is taking a exam.")

这里我们定义了类Student,拥有属性namestudent_id。我们还定义了两个方法studyexam,用来表示学生的行为。值得注意的是,__init__()方法将会在创建一个类的实例时被自动调用,且只被调用这一次。所有属性的初始化和其他在初始化一个类的时候需要执行的操作都可以写在__init__()方法中。另外,self关键词为一个指向类实例的引用,当类被创建时就可以用self来访问实例的属性。

1.2 实例化一个类

下面我们实例化Student类,并且调用类的方法。

示例代码如下:

student1 = Student(name='Joey', student_id='001')
student2 = Student(name='Rhona', student_id='002')

student1.study()
student2.exam()

以下为运行结果:

Student Joey is studying.
Student Rhona is taking a exam.

2. 面向对象

2.1 python中类的继承

python中的类有继承机制,子类对于父类的继承将继承父类所有的属性和方法。当然,子类可以拥有自己的方法,也可以重写父类的方法。

class Monitor(Student):
    """班长类"""

    def __init__(self, name, student_id):
        """初始化属性"""
        super().__init__(name, student_id)

    def roll_call(self):
        """点名"""
        print("Monitor " + self.name + " is now calling the roll.")

这里我们定义了一个Monitor类,代表班长,继承了父类Student。其中super.__init__()语句调用了父类的构造函数,用于对于子类属性的初始化。子类拥有所有父类的方法,并且拥有自己的方法roll_call。见如下代码:

monitor = Monitor(name='Peter', student_id='003')
monitor.study()
monitor.roll_call()

以下为运行结果:

Student Peter is studying.
Monitor Peter is now calling the roll.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值