📅  最后修改于: 2023-12-03 15:34:27.394000             🧑  作者: Mango
面向对象编程(Object Oriented Programming,OOP)是一种编程范式,它将现实世界中的实体和其属性,抽象成类和对象的概念,方便程序员进行编程。Python作为一种支持面向对象编程的语言,包括以下特性:继承、封装、多态。
在本篇文章中,我们将探讨继承、对象实例、issubclass 和 super等内容。
继承是面向对象编程的一个重要概念,通过继承,一个类可以继承另一个类(称之为父类或者基类)的属性和方法。继承的语法如下:
class ChildClass(ParentClass):
pass
ChildClass继承了ParentClass。
让我们来看一个例子:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def getInfo(self):
print(f"My name is {self.name}. I am {self.age} years old.")
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
def getGrade(self):
print(f"My grade is {self.grade}.")
s = Student("Tom", 18, "A")
s.getInfo()
s.getGrade()
子类Student继承了父类Person,Student可以使用Person的属性和方法。使用super()函数调用父类的构造器。
在面向对象编程中,类是一个抽象的概念,而对象是实际存在的个体。定义类后,我们需要通过实例化的方式创建一个对象。实例化的语法如下:
class MyClass:
pass
obj = MyClass()
让我们看一个更加详细的例子:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def getInfo(self):
print(f"My name is {self.name}. I am {self.age} years old.")
p1 = Person("Tom", 18)
p2 = Person("John", 20)
p1.getInfo()
p2.getInfo()
在该例子中,我们定义了一个Person类,然后通过实例化创建了p1和p2两个对象。
issubclass()函数用于判断一个类是否是另一个类的子类,它的语法格式为:
issubclass(sub_class, parent_class_or_tuple)
返回值为True或False。
让我们看一个例子:
class Person:
pass
class Student(Person):
pass
print(issubclass(Student, Person)) # True
print(issubclass(int, Person)) # False
在该例子中,Person是Student的父类,issubclass()函数返回值为True,而int不是Person类的子类,返回值为False。
super()函数用于调用父类的方法,可以在子类中,直接调用父类方法,语法格式如下:
super().method()
让我们看一个例子:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
s = Student("Tom", 18, "A")
print(s.name)
在该例子中,子类Student调用父类Person中的__init__()方法,使用super()函数,实现对父类方法的调用。
继承、对象实例、issubclass 和 super是面向对象编程中的重要概念,Python中也提供了相应的语法和函数来支持这些概念的实现。掌握这些概念,对于大型程序的编写是至关重要的。