Python3 面向对象
Python3 面向对象
Python3 是一种面向对象的编程语言,面向对象编程(Object-Oriented Programming 或 OOP)是一种编程范式,其中数据和功能被封装在对象中。在 Python3 中,对象是通过类定义的,类描述了对象的属性和方法。
类和对象
在 Python3 中,类是一个表示对象的蓝图或模板,它定义了一组属性和方法。对象是类的一个实例,它有自己的状态,行为和标识。在 Python3 中,类是用 class 关键字定义的。
以下是一个简单的 Python3 类和对象的例子:
class Car:
def __init__(self, make, model):
self.make = make
self.model = model
def get_make(self):
return self.make
def get_model(self):
return self.model
car1 = Car("Toyota", "Camry")
print(car1.get_make())
print(car1.get_model())
这个例子定义了一个名为 Car 的类,它有两个属性 make 和 model,以及两个方法 get_make 和 get_model。在创建一个类的实例时,需要使用类名和一对括号创建一个对象。这个例子创建了一个名为 car1 的 Car 对象。
继承
继承是面向对象编程中的一个重要概念,它允许创建一个新类来重写和扩展现有类的属性和方法。在 Python3 中,一个类可以从另一个类继承。被继承的类称为基类或父类,继承它的类称为派生类或子类。
以下是一个简单的 Python3 继承的例子:
class Animal:
def __init__(self, name):
self.name = name
def get_name(self):
return self.name
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name)
self.breed = breed
def get_breed(self):
return self.breed
dog1 = Dog("Buddy", "Golden Retriever")
print(dog1.get_name())
print(dog1.get_breed())
这个例子定义了一个名为 Animal 的基类和一个名为 Dog 的子类。Dog 类从 Animal 类继承了属性和方法,它还有一个额外的属性 breed。在创建一个 Dog 对象时,需要提供它的 name 和 breed。这个例子创建了一个名为 dog1 的 Dog 对象。
在这个例子中,我们使用 super() 函数来调用基类的构造函数,以便初始化 name 属性。
多态
多态是面向对象编程中的另一个重要概念,它允许使用派生类对象替代基类对象,并调用基类方法时得到正确的结果。在 Python3 中,多态是由动态类型检查和动态绑定实现的。
以下是一个简单的 Python3 多态的例子:
class Animal:
def __init__(self, name):
self.name = name
def talk(self):
pass
class Dog(Animal):
def talk(self):
return "Woof!"
class Cat(Animal):
def talk(self):
return "Meow!"
def animal_talk(animal):
print(animal.talk())
dog1 = Dog("Buddy")
cat1 = Cat("Fluffy")
animal_talk(dog1)
animal_talk(cat1)
这个例子定义了一个名为 Animal 的基类和两个名为 Dog 和 Cat 的子类。基类有一个 talk 方法,两个子类都重写了这个方法,以便返回它们自己的声音。在 animal_talk 函数中,我们使用 polymorphism 来调用每个对象的正确方法。
小结
Python3 是一种面向对象的编程语言,它支持类和对象、继承和多态。类是一个表示对象的蓝图或模板,对象是类的一个实例,它有自己的状态,行为和标识。继承允许创建一个新类来重写和扩展现有类的属性和方法,派生类从基类继承了属性和方法。多态允许使用派生类对象替换基类对象,并调用基类方法时得到正确的结果。在 Python3 中,动态类型检查和动态绑定实现了多态。