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表示从哪个类继承而来, ...
随机推荐
- 灰色预测GM(1,1)模型的理论原理
灰色预测是对时间有关的灰色过程进行预测.通过建立相应的微分方程模型,从而预测事物未来发展趋势的状况. 由于笔者的水平不足,本章只是概括性地介绍GM(1,1)模型的理论原理,便于对初学者的初步理解 目录 ...
- vulnhub - Geisha
vulnhub - Geisha 描述 Machine Name: Geisha Author : SunCSR Goal: Get the root flag of the target. Diff ...
- yb课堂 谷歌开源缓存框架Guava cache,封装API 《二十》
Guava cache github地址:点我直达 全内存的本地缓存实现 高性能且功能丰富 线程安全,操作简单 添加依赖 <dependency> <groupId>com.g ...
- [oeasy]python0092_homebrew_家酿俱乐部_比尔盖茨_保罗艾伦
编码进化 个人电脑 intel 8080 的出现 让 人人都 可能有 一台计算机 Ed Robert 的 创业之路 从 售卖 diy 组装配件 到进军 计算器市场 计算器 毕竟不是 个人计算机 这计算 ...
- [oeasy]python0018_ ASCII_字符分布_数字_大小写字母_符号_黑暗森林
打包和解包 回忆上次内容 decode 就是解码 解码和编码可以转化 encode 编码 decode 解码 互为逆过程 大小写字母之间序号全都相差(32)10进制 编辑 这是 ...
- oeasy教您玩转python - 003 - # - 继续运行
继续运行 回忆上次内容 在解释器里玩耍 print("Hello World") 1+1 编写了 py 文件 运行了 py 文件 这次我们继续丰富这个文件 分析 py 文件 我 ...
- elementui中实现loding实现局部加载,以el-dialog为例
效果 封装loading加载(也可以直接使用,封装为了方便多次调用) 组件定义:loadDiy.js import { Loading } from "element-ui"; e ...
- JavaScript中的new map()和new set()使用详细(new map()和new set()的区别)
简介:new Map(): 在JavaScript中,new Map()用于创建一个新的 Map 对象.Map 对象是一种键值对的集合,其中的键是唯一的,值可以重复.new Set(): 在JavaS ...
- 华为高性能计算(HPC)文档——技术支持>智能计算解决方案>高性能计算>HPC
链接地址: https://support.huawei.com/enterprise/zh/server-solutions/hpc-pid-253585671 ================== ...
- Apache DolphinScheduler-3.2.0集群部署教程
集群部署方案(2 Master + 3 Worker) Apache DolphinScheduler官网:https://dolphinscheduler.apache.org/zh-cn Apac ...