Python从入门到精通——2.2.1深入学习面向对象编程:类和对象的定义

简介: Python从入门到精通——2.2.1深入学习面向对象编程:类和对象的定义

一、引言


面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它使用“对象”来设计应用程序和软件系统。在Python中,面向对象编程的核心概念是“类”和“对象”。类是创建对象的蓝图或模板,而对象则是根据类创建的实例。通过掌握类和对象的定义,我们可以更好地理解和应用面向对象编程的思想和方法。


二、类的定义


在Python中,我们使用class关键字来定义类。类的定义包括类名、类变量和类方法。下面是一个简单的类定义示例: image.png

在这个例子中,我们定义了一个名为Dog的类。它有一个类变量species,表示狗的物种,以及一个初始化方法__init__和两个实例方法bark

·

__init__方法是一个特殊的方法,当创建类的新实例时,Python会自动调用它。在这个方法中,我们接收两个参数nameage,并将它们分别赋值给实例变量self.nameself.ageself是一个对当前实例的引用,它允许我们访问实例的属性和方法。

·

·

bark方法是一个普通的实例方法,它打印出狗的名字并模拟狗的叫声。通过self参数,我们可以访问调用该方法的实例的name属性。

·


三、对象的创建和使用


定义了类之后,我们就可以根据这个类来创建对象。创建对象的过程叫做实例化,它使用类名作为构造器,并传入必要的参数来调用__init__方法。下面是如何创建Dog类的实例并使用它的示例:

image.png


在这个例子中,我们创建了一个名为my_dogDog类实例,并传入了"旺财"3作为参数。这些参数被传递给__init__方法,用于初始化实例变量nameage。然后,我们可以通过点操作符.来访问这些实例变量和调用实例方法。同时,我们也可以通过实例访问类变量species


四、类的属性和方法的访问控制


在面向对象编程中,我们经常需要控制对类的属性和方法的访问权限。Python通过约定俗成的命名方式来提供一定程度的访问控制,而不是像一些其他语言那样使用关键字来明确指定访问级别。


公有属性和方法:如果属性和方法的名称没有以下划线开头或结尾,那么它们就是公有的,可以从类的外部访问。


受保护的属性和方法:如果一个属性的名称以一个下划线开头,那么它被认为是受保护的,意味着它应该仅在类的内部或其子类中使用,而不应从类的外部直接访问。


私有属性和方法:如果一个属性的名称以两个下划线开头但没有以两个下划线结尾,那么它被认为是私有的。Python会对其名称进行修饰(mangling),使得它不能在类的外部直接访问。然而,这并不意味着它完全不可访问,只是增加了访问的复杂性。


下面是一个展示访问控制的例子:


image.png


相关文章
|
21天前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
181 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
18天前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从0到1,精通Python使用
尼恩架构团队的大模型《LLM大模型学习圣经》是一个系统化的学习系列,初步规划包括以下内容: 1. **《Python学习圣经:从0到1精通Python,打好AI基础》** 2. **《LLM大模型学习圣经:从0到1吃透Transformer技术底座》**
Python学习圣经:从0到1,精通Python使用
|
19天前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
13 1
|
20天前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
17 2
|
21天前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
270 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
18天前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从入门到精通Python,打好 LLM大模型的基础
Python学习圣经:从0到1精通Python,打好AI基础
|
20天前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
41 0
|
6月前
|
Java 程序员 Python
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
29.从入门到精通:Python3 面向对象继承 多继承 方法重写 类属性与方法
29.从入门到精通:Python3 面向对象继承 多继承 方法重写 类属性与方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法
28.从入门到精通:Python3 面向对象 面向对象技术简介 类定义 类对象 类的方法