Python类的用法实例浅析
Python是一门面向对象的编程语言,支持类的定义和使用。类是一种抽象的数据类型,可以封装数据和方法,可以被实例化为对象。本文将针对Python类的用法进行浅析,涉及类的定义、类的继承、方法的重写以及类的实例化等方面。同时,本文将提供两个示例说明,辅助理解类的使用方法。
定义类
在Python中,使用class
关键字定义类。类中可以包含数据和方法。以下是一个简单的示例:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def display(self):
print("Name: %s, Age: %d" % (self.name, self.age))
以上代码定义了一个Student
类,其中包含两个属性name
和age
,以及一个方法display
。__init__
方法是一个特殊的方法,用于创建对象时初始化对象属性。self
表示对象本身,可以通过self
来访问对象的属性和方法。
类的继承
在Python中,一个类可以继承另一个类的所有属性和方法。使用class
关键字定义子类,并在括号内指定其父类。以下是一个示例:
class Master(Student):
def __init__(self, name, age, skill):
Student.__init__(self, name, age)
self.skill = skill
def display(self):
print("Name: %s, Age: %d, Skill: %s" % (self.name, self.age, self.skill))
以上代码定义了一个Master
类,它继承了Student
类,并新增了一个属性skill
。在__init__
方法中,调用父类的__init__
方法初始化对象属性。在display
方法中,重写了Student
类的display
方法,新增了对skill
属性的输出。
方法的重写
在子类中可以对父类的方法进行重写。以下是一个示例:
class Worker(Student):
def __init__(self, name, age, work):
Student.__init__(self, name, age)
self.work = work
def display(self):
print("Name: %s, Age: %d, Work: %s" % (self.name, self.age, self.work))
def study(self):
print("%s is studying" % self.name)
以上代码定义了一个Worker
类,继承了Student
类,并新增了一个属性work
和一个方法study
。在display
方法中,重写了Student
类的display
方法,新增了对work
属性的输出。在study
方法中,新增了一个方法。
类的实例化
在Python中,使用类创建对象的过程称为实例化。可以通过实例化的方式访问对象属性和方法。以下是一个示例:
student = Student("Tom", 20)
student.display()
master = Master("Jack", 30, "Programming")
master.display()
worker = Worker("Lucy", 25, "Coding")
worker.display()
worker.study()
以上代码分别实例化了Student
、Master
和Worker
三个类,并访问了它们的属性和方法。对于Student
类来说,调用了__init__
方法初始化对象属性,并调用了display
方法输出属性值。对于Master
类来说,先调用了父类的__init__
方法初始化对象属性,再调用了重写过的display
方法输出属性值。对于Worker
类来说,新增了一个方法study
,可以在对象中调用该方法。
示例说明1:人类和学生类
class Human:
def __init__(self, name, age):
self.name = name
self.age = age
def display(self):
print("Name: %s, Age: %d" % (self.name, self.age))
class Student(Human):
def __init__(self, name, age, score):
Human.__init__(self, name, age)
self.score = score
def display(self):
print("Name: %s, Age: %d, Score: %d" % (self.name, self.age, self.score))
student = Student("Tom", 20, 80)
student.display()
以上代码定义了一个Human
类和一个Student
类,其中Student
类继承了Human
类。在Student
类中新增了一个属性score
,并重写了display
方法。实例化一个Student
对象,并访问该对象的属性和方法。
示例说明2:汽车类和承载人的汽车类
class Car:
def __init__(self, brand, price):
self.brand = brand
self.price = price
def display(self):
print("Brand: %s, Price: %.2f" % (self.brand, self.price))
class PassengerCar(Car):
def __init__(self, brand, price, num):
Car.__init__(self, brand, price)
self.num = num
self.passengers = []
def add_passenger(self, passenger):
self.passengers.append(passenger)
def remove_passenger(self, passenger):
self.passengers.remove(passenger)
def list_passengers(self):
print("Brand: %s, Capacity: %d, Passengers: %s" % (self.brand, self.num, self.passengers))
car = PassengerCar("Benz", 100000, 4)
car.display()
car.add_passenger("Tom")
car.add_passenger("Jack")
car.list_passengers()
以上代码定义了一个Car
类和一个PassengerCar
类,其中PassengerCar
类继承了Car
类。在PassengerCar
类中新增了一个属性num
表示容量和一个列表passengers
表示承载的乘客。通过重载__init__
方法和新增的add_passenger
、remove_passenger
和list_passengers
方法完成了承载人的汽车的功能。实例化一个PassengerCar
对象,并访问该对象的属性和方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python类的用法实例浅析 - Python技术站