10 Python面向对象编程:类和对象以及和Java的对比
本篇是 Python 系列教程第 10 篇,更多内容敬请访问我的 Python 合集
这里只介绍类和对象,self、属性、方法、访问控制、类继承、方法重写在后面的文章里介绍
在Python中,类和对象是面向对象编程的基础。
1 类的概念
类是一种创建对象的蓝图或模板。它定义了一组属性(变量)和方法(函数),这些属性和方法描述了该类的对象应该具有哪些特征和行为。
2 定义一个类
在Python中,你可以使用class关键字来定义一个类。例如,定义一个名为Person的简单类:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def display(self):
print(f"Name: {self.name}, Age: {self.age}")
__init__方法是一个特殊的方法,称为构造器,用于初始化类的新实例。self参数代表类的实例本身,并且是类任何方法的第一个参数。- 类方法需要通过
self来访问类属性。
3 创建对象
创建一个类的实例(即对象)非常简单。只需调用类名后跟一对括号即可:
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
4 访问属性和方法
可以通过点符号访问对象的属性和方法:
person1.display()
# 输出: Name: Alice, Age: 25
print(f"Name: {person2.name}, Age: {person2.age}")
# 输出: Name: Bob, Age: 30
Python 还有一个很牛逼的操作就是可以直接给对象赋值类里不存在的属性,比如我给 person2 的一个不存在的属性 gender 赋值:
person2.gender = "男"
print(getattr(person2,"gender"))
# 输出:男
5 和Java类的对比
5.1 类和文件
在 Python 中,一个文件可以包含多个类。我们新建一个 example.py 文件,里面创建两个类,并在 main.py 文件中使用它们。
example.py
class MyClass1:
def __init__(self, value):
self.value = value
def display(self):
print("MyClass1 Value is:", self.value)
class MyClass2:
def __init__(self, value):
self.value = value
def display(self):
print("MyClass2 Value is:", self.value)
你可以在另一个文件中导入并使用这些类:
main.py
from example import MyClass1, MyClass2
# 创建MyClass1的实例
instance1 = MyClass1("AAA")
instance1.display()
# 输出:MyClass1 Value is: AAA
# 创建MyClass2的实例
instance2 = MyClass2("BBB")
instance2.display()
# 输出:MyClass2 Value is: BBB
Java 一个文件也可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一致。这是编译器的基本要求。虽然可以有非 public 的类,但是在外部无法使用,只能在本文件的类里使用。
5.2 构造函数
Python 构造函数第一个参数是 self 代表类的实例本身,并且 self 是类任何方法的第一个参数。构造函数里用 self.xx = xx 赋值过的参数就是类的属性,不用像 Java 一样先声明属性。
10 Python面向对象编程:类和对象以及和Java的对比的更多相关文章
- python -- 面向对象编程(类、对象)
一.类 类是用来描述具有相同的属性和方法的对象的集合. 它定义了该集合中每个对象共同拥有的属性和方法. 类是一个独立的单位,它有一个类名,其内部包括成员变量和成员方法,分别用于描述对象的属性和行为. ...
- Python记录14:面向对象编程 类和对象
'''现在主流的编程思想有两种,一种是面向对象,一种是面向过程面向过程编程 核心是过程二字,过程指的是解决问题的步骤,即先干什么.再干什么.最后干什么... 基于该思想编写程序就好比再设计一条流水线, ...
- Python 面向对象编程——类定义与对象
<类定义与对象声明> 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对 ...
- Python - 面向对象编程 - 什么是对象和类
面向对象编程 Object Oriented Programming,简称 OOP,是一种程序设计思想 OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法 Python里面有一句话: ...
- Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)
概念: ...
- python 面向对象编程、获取对象信息
面向对象与面向过程 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0 ...
- 13_Python的面向对象编程-类class,对象object,实例instance
1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组 2.对象是由类实例化出来的一个具体的对象 属性: 对象拥有的名词,用变量表示 ...
- Python面向对象编程 -- 类和实例、访问限制
面向对象编程 Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程 ...
- python面向对象(类与对象)
面向对象思想 关注公众号"轻松学编程"了解更多. 1.面向对象的设计思想 面向对象是基于万物皆对象这个哲学观点. 2.面向对象和面向过程的区别 面向过程 在生活中: 它是一种看待问 ...
- Python面向对象编程-类的封装,继承、多态
面向对象是一种程序设计思想,对象作为程序基本单元,包含了数据和操作数据的函数. 面向对象的三大特点--数据封装.多态和继承. #类的创建,class关键字,类名大写,object表示从哪个类继承而来, ...
随机推荐
- Python性能测试框架:Locust实战教程
01认识Locust Locust是一个比较容易上手的分布式用户负载测试工具.它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思:作者的想 ...
- 1. 简述一下你对 HTML 语义化的理解?
用正确的标签做正确的事情.1.HTML 语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 2.即使在没有样式 CSS 的情况下也能以一种文档格式显示,并且是容易阅读的; 3.搜索引擎 ...
- SpringBoot异步任务EnableAsync
什么是一部任务和使用场景:适用于处理log.发送邮件.短信...等 下单接口->查库存 1000 余额校验 1500 风控用户 1000 启动类里面使用@EnableAsync注解开启功能,自动 ...
- SpringBoot全局异常,返回JSON数据
全局异常处理 为什么要配全局异常? 不配全局服务端报错场景,1/0.空指针等 配置好处 统一的错误页面或错误码 对用户更友好 配置全局异常 第一步类添加注解 @ControllerAdvicce,如果 ...
- ps -ef | grep xxx 解释
上述内容为:命令拆解: ps:将某个进程显示出来-A 显示所有程序.-e 此参数的效果和指定"A"参数相同.-f 显示UID,PPIP,C与STIME栏位.grep命令是查找中间的 ...
- 机器学习:详解迁移学习(Transfer learning)
详解迁移学习 深度学习中,最强大的理念之一就是,有的时候神经网络可以从一个任务中习得知识,并将这些知识应用到另一个独立的任务中.所以例如,也许已经训练好一个神经网络,能够识别像猫这样的对象,然后使用那 ...
- BTC 地址
比特币地址(Bitcoin Address)是用于接收和发送比特币的唯一标识符,类似于传统金融系统中的银行账号.一个比特币地址由一串字母和数字组成,通常以1.3或bc1开头,具体长度为26至35个字符 ...
- docker 安装 centos8 mysql8 java tomcat
docker 安装 centos8 mysql8 java tomcat 一,首先在window10系统安装docker,这里就不再描述了. 二,启动docker下载安装centos8镜像 注意: ...
- 【Java】逗号拼接的取巧处理
需求如图: 这是表的关键处理数据,页面上的输入框要做分开展示,也就是要写业务逻辑来处理 逗号拼接的取巧处理,使用了List集合toString方法来实现,然后移除括号 final String emp ...
- 【JS】03 BOM 浏览器对象模型
BOM :Broswer Object Model 浏览器对象模型 核心对象是window对象,window对象又可以操作以下的常见对象: - frames[] 窗口对象数组? 浏览器可以打开多个窗口 ...