面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它应用对象来示意事实世界中的实体和它们之间的关系。在 Python 中,咱们能够应用类(Class)来定义对象的构造和行为。类是对象的蓝图,而对象是类的实例。
4.1.1 定义类
在 Python 中,应用 class
关键字定义一个类,并应用大驼峰命名法(每个单词首字母大写)。类中能够蕴含属性(Attribute)和办法(Method)。属性是类或对象的状态,办法是类或对象的行为。以下是一个简略的类定义示例:
class Dog:
species = "Canis lupus familiaris" # 类属性
def __init__(self, name, age): # 构造方法
self.name = name # 实例属性
self.age = age
def bark(self): # 实例办法
print(f"{self.name} says Woof!")
在这个示例中,咱们定义了一个 Dog
类,它蕴含一个类属性 species
,一个构造方法 __init__()
以及一个实例办法 bark()
。
4.1.2 创建对象
要创立一个类的实例(对象),只需调用类名并传递构造方法所需的参数即可。例如:
dog1 = Dog("Buddy", 3)
dog2 = Dog("Milo", 5)
这里咱们创立了两个 Dog
类的实例,别离是 dog1
和 dog2
。
4.1.3 拜访属性和办法
能够应用点(.
)操作符拜访对象的属性和办法。例如:
dog1 = Dog("Buddy", 3)
print(dog1.name) # 输入:Buddy
print(dog1.age) # 输入:3
dog1.bark() # 输入:Buddy says Woof!
print(Dog.species) # 输入:Canis lupus familiaris
在这个示例中,咱们别离拜访了对象 dog1
的属性 name
、age
以及办法 bark()
,还拜访了类属性 species
。
4.1.4 批改属性
能够间接批改对象的属性值。例如:
dog1 = Dog("Buddy", 3)
dog1.age = 4
print(dog1.age) # 输入:4
4.1.5 继承
继承是面向对象编程的一个重要个性,它容许在一个现有类的根底上创立新类,从而实现代码重用和模块化。新类能够继承现有类的属性和办法,并能够增加或笼罩它们。
要创立一个继承自现有类的新类,只需在类定义时将现有类名放在括号里。例如:
class GermanShepherd(Dog):
species = "Canis lupus german shepherd"
def guard(self):
print(f"{self.name} is guarding the house.")
在这个示例中,咱们创立了一个 GermanShepherd
类,它继承自 Dog
类。咱们笼罩了 species
属性,并增加了一个新办法 guard()
。
gs_dog = GermanShepherd("Max", 6)
print(gs_dog.species) # 输入:Canis lupus german shepherd
gs_dog.bark() # 输入:Max says Woof!
gs_dog.guard() # 输入:Max is guarding the house.
4.1.6 多态
多态是指同一操作作用于不同的对象,能够产生不同的后果。多态是面向对象编程的另一个重要个性,它使得咱们能够应用对立的接口解决不同类型的对象。
上面是一个多态的示例:
class Cat:
def __init__(self, name):
self.name = name
def speak(self):
print(f"{self.name} says Meow!")
class GoldenRetriever(Dog):
def speak(self):
print(f"{self.name} says Woof!")
def let_animals_speak(animals):
for animal in animals:
animal.speak()
cat1 = Cat("Whiskers")
dog1 = GoldenRetriever("Buddy", 4)
let_animals_speak([cat1, dog1])
在这个示例中,咱们定义了一个名为 let_animals_speak()
的函数,它接管一个动物列表作为参数,并调用列表中每个动物的 speak()
办法。咱们创立了一个 Cat
类的实例 cat1
和一个 GoldenRetriever
类的实例 dog1
,并将它们传递给 let_animals_speak()
函数。只管它们是不同类型的对象,但多态容许咱们应用雷同的接口解决它们。
输入后果为:
Whiskers says Meow!
Buddy says Woof!
这样,咱们就具体地介绍了面向对象编程中的类与对象,以及相干的概念,如属性、办法、继承和多态。心愿这些内容和示例能帮忙你更好地了解 Python 面向对象编程。
举荐浏览:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g