Python3面向对象相关知识
Python是一种支持多种编程范式的语言,包括面向对象编程(Object-Oriented Programming,OOP)。面向对象编程是一种编程模式,它使用“对象”来表示数据和操作数据的方法。面向对象编程在Python中非常有用,特别是在处理复杂的数据结构和系统时,它可以帮助组织和管理代码,使其更加清晰和可维护。
1、类(Class)
类是创建对象的蓝图。它定义了一组属性(称为字段或变量)和方法(类中定义的函数)。
class MyClass: def __init__(self, attribute_value): self.attribute = attribute_value def method(self): return self.attribute
2、对象(Object)
对象是类的实例。当类被实例化时,会创建一个对象。每个对象都有自己的属性和方法,它们与类中定义的属性和方法相关联。
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, {self.name}。{self.age}岁") person1 = Person("张三", 30) person2 = Person("李四", 25) person1.say_hello() person2.say_hello()
3、属性(Attribute)
属性是对象的数据成员,它们用于存储对象的状态。属性通常在类的构造函数 __init__
中初始化,并通过 self 关键字访问。
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, {self.name}。{self.age}岁") person1 = Person("张三", 30) person2 = Person("李四", 25) #访问对象的属性 print(person1.name) print(person2.name)
4、方法(Method)
方法是与对象相关联的函数。它们用于执行特定的操作。方法通常以 self 作为第一个参数,以便访问对象的属性和其他方法。
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, {self.name}。{self.age}岁") person1 = Person("张三", 30) person2 = Person("李四", 25) #调用对象的方法 person1.say_hello() person2.say_hello()
3、继承(Inheritance)
继承是一种机制,它允许创建一个新的类(子类),该类可以继承另一个类(父类)的属性和方法。子类可以扩展或修改继承的属性和方法。
1)基本继承
Python所有类都是object的特殊类的子类,这个和其它语言中的类似,我们不指定父类,类是自动从object继承过来。我们也可以显示声明从object类继承,例如,
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, {self.name}。{self.age}岁") class Student(Person, object): def __init__(self, name, age, student_id): super().__init__(name, age) # 调用父类的构造函数 self.student_id = student_id def study(self): print(f"{self.name} is studying.") student = Student("Lingliang", 21, "12345") student.say_hello()
2)扩展内置类
可以继承内置类并扩展它们,以添加自定义的功能或行为。这可以通过创建一个新的类,并在新的类中继承内置类的属性和方法来实现。例如,
使用示例:
3)重写和Super
可以使用继承、方法重写和super()函数来扩展和自定义父类的行为。
使用示例:
4)多重继承
Python 3 支持多重继承,也就是一个类可以继承自多个父类。子类可以继承多个父类的属性和方法。多重继承在某些情况下非常有用,但也需要小心使用,以避免潜在的复杂性和命名冲突。
使用示例:
5)多态
多态(Polymorphism)是面向对象编程的一个重要概念,它允许不同的对象对相同的方法名做出不同的响应。
使用示例:
6)封装
封装(Encapsulation)是面向对象编程(OOP)的一个重要概念,它指的是将类的内部数据和实现细节隐藏起来,只暴露必要的接口。封装有助于保护数据的完整性和安全性,并使代码更具可维护性和可扩展性。
使用示例: