在 Python 中,面向对象编程 (OOP) 是一种在编程中使用对象和类的编程范式。它旨在在编程中实现现实世界的实体,如继承、多态性、封装等。OOP 的主要概念是将数据和处理该数据的函数绑定为一个单元,以便代码的其他部分无法访问此数据。
Python 中的 OOP 概念
- 类Class
- 对象Objects
- 多态性Polymorphism
- 封装Encapsulation
- 继承Inheritance
- 数据抽象Data Abstraction
Python 类
类是对象的集合。类包含创建对象的蓝图或原型。它是一个包含一些属性和方法的逻辑实体。
假设您想跟踪可能具有不同属性(如品种和年龄)的狗的数量。如果使用列表,第一个元素可能是狗的品种,而第二个元素可以表示它的年龄。假设有 100 只不同的狗,那么你怎么知道哪个元素应该是哪个?如果您想为这些狗添加其他属性怎么办?
- 类由关键字 class 创建。
- 属性是属于类的变量。
- 属性始终是公共的,可以使用点 (.) 运算符进行访问。例如:Myclass.Myattribute
类定义语法:
class ClassName:
# Statement-1
.
.
.
# Statement-N
在 Python 中创建空类
,我们使用 class 关键字创建了一个名为 Dog 的类。
class Dog:
pass
Python 对象
对象是具有与其关联的状态和行为的实体。它可以是任何现实世界的物体,如鼠标、键盘、椅子、桌子、笔等。整数、字符串、浮点数、甚至数组和字典都是对象。
任何单个整数或任何单个字符串都是一个对象。数字 12 是一个对象,字符串“Hello, world”是一个对象,列表是一个可以容纳其他对象的对象,依此类推。您一直在使用对象,甚至可能没有意识到这一点
对象由以下部分组成:
- 状态:它由对象的属性表示。它还反映了对象的属性。
- 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
- 标识:它为对象提供唯一名称,并使一个对象能够与其他对象进行交互。
创建对象
这将创建一个名为 obj 的对象,该对象属于上面定义的 Dog 类。
obj = Dog()
The Python self实例方法
类的实例谅垢第一个参数是对象本身
Python __init__方法
__init__ 方法类似于 C++ 和 Java 中的构造函数。一旦实例化了类的对象,它就会运行。该方法可用于对对象执行任何初始化操作。现在让我们定义一个类并使用 self 和 __init__ 方法创建一些对象属性或者初始化动作
创建具有类和实例属性的类和对象
class Dog:
# class attribute
attr1 = "mammal"
# Instance attribute
def __init__(self, name):
self.name = name
# Driver code
# Object instantiation
Rodger = Dog("Rodger")
Tommy = Dog("Tommy")
# Accessing class attributes
print("Rodger is a {}".format(Rodger.__class__.attr1))
print("Tommy is also a {}".format(Tommy.__class__.attr1))
# Accessing instance attributes
print("My name is {}".format(Rodger.name))
print("My name is {}".format(Tommy.name))
输出
Rodger is a mammal
Tommy is also a mammal
My name is Rodger
My name is Tommy
在这里,Dog 类定义有两个属性:
- attr1 是设置为值“mammal”的类属性。类属性由类的所有实例共享。
- __init__ 是一个特殊方法),用于初始化 Dog 类的实例。它有两个参数:self(指正在创建的实例)和 name(表示狗的名字)。name 参数用于为每个 Dog 实例分配一个 name 属性。
speak 方法在 Dog 类中定义。此方法打印一个字符串,其中包含 dog 实例的名称。
`