一、初识对象
二、成员方法
三、类和对象
四、构造方法
五、其它内置方法
六、封装
七、继承
八、类型注解
九、多态
面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将数据和操作数据的方法组织成对象。对象是具有特定属性和行为的实体,而类是对象的模板,用于定义对象的属性和行为。
以下是面向对象编程的一些关键概念:
Person
类,用于表示人的属性和行为。class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
Person
类的对象,如 person1
和 person2
。person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
# 使用对象的方法
person1.greet()
class Student(Person):
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.")
def introduce(person):
person.greet()
introduce(person1)
introduce(Student("Charlie", 22, "12345"))
这些概念共同构成了面向对象编程的基础。通过面向对象编程,可以更清晰地组织和设计代码,提高代码的可维护性和可复用性。
使用对象完成数据组织的思路
生活中或是程序中,我们都可以使用设计表格、生产表格、填写表格的形式组织数据
进行对比,在程序中:
设计表格(设计类):
打印表格(创建对象):
填写表格(对象属性赋值):
举个简单的例子,比如有一个类定义:
class Student:
def __init__(self, name, age, grade):
self.name = name
self.age = age
self.grade = grade
def display_info(self):
print(f"Name: {self.name}, Age: {self.age}, Grade: {self.grade}")
这个类描述了学生的特征(姓名、年龄、成绩)和一个方法用于显示学生信息。现在,我们可以创建该类的对象并为对象的属性赋值:
# 创建学生对象
student1 = Student("Alice", 20, "A")
# 打印学生信息
student1.display_info()
在这个例子中,Student
类就好比设计表格,student1
对象就相当于打印表格,而为 student1
对象的属性赋值(例如,name
、age
、grade
)就是填写表格。
这种比喻使得面向对象编程的概念更加直观,帮助初学者更容易理解类、对象和属性的概念。
类和对象之间的关系是面向对象编程中的核心概念。让我们更详细地解释一下:
类(Class):
对象(Object):
关系:
示例:
Car
,该类具有属性(例如,颜色、型号)和方法(例如,启动、加速)。通过这个类,我们可以创建多个具体的汽车对象,每辆汽车都有自己的颜色和型号,并可以执行启动和加速等操作。class Car:
def __init__(self, color, model):
self.color = color
self.model = model
def start(self):
print(f"The {self.color} {self.model} is starting.")
def accelerate(self):
print(f"The {self.color} {self.model} is accelerating.")
# 创建两个Car对象
car1 = Car("Red", "Sedan")
car2 = Car("Blue", "SUV")
# 调用对象的方法
car1.start()
car2.accelerate()
在这个例子中,Car
类是一个模板,car1
和 car2
是这个类的两个不同的对象。每个对象都有自己的颜色和型号,并可以执行类定义的方法。
总的来说,类是对对象的抽象,而对象是类的实例。通过类,我们可以定义一种数据类型,然后通过创建对象,我们可以在程序中使用这个数据类型的具体实例。
现实世界的事物由什么组成?
类和对象的关系是什么?
类是程序中的“设计图纸”
对象是基于图纸生产的具体实体
什么是面向对象编程?
面向对象编程就是,使用对象进行编程。
即,设计类,基于类创建对象,并使用对象来完成具体的工作
使用构造方法向成员变量赋值
几种常用的类内置方法
直接对2个对象进行比较是不可以的,但是在类中实现__lt__方法,即可同时完成:小于符号 和 大于符号 2种比较
面向对象编程,是许多编程语言都支持的一种编程思想。
简单理解是:基于模板(类)去创建实体(对象),使用对象完成功能开发。
面向对象包含3大主要特性:
当我们调用方法,进行传参的时候(快捷键ctrl + p弹出提示):
为什么内置模块random
的方法可以提示类型
自己定义的就不可以?
因为PyCharm无法通过代码
确定应传入什么类型
我们需要使用类型注解
Python在3.5版本的时候引入了类型注解,以方便静态类型检查工具,IDE等第三方工具。
类型注解:在代码中涉及数据交互的地方,提供数据类型的注解(显式的说明)。
主要功能:
支持:
->
from typing import Union