当前位置: 首页 > news >正文

如何理解Python中一切皆对象?

Python

    • 一、示例代码
    • 二、Python中的魔法方法

一、示例代码

  • 有理数类
import mathclass rational:def __init__(self,p,q):self.p = pself.q = qdef __str__(self):return "{} / {}".format(self.p,self.q)def simplify(self):gcd = math.gcd(self.p,self.q)return rational(int(self.p / gcd),int(self.q / gcd))#加def __add__(self, other):return rational(self.p + other.p,self.q + other.q)#减def __sub__(self, other):return rational(self.p * other.q - other.p * self.q,self.q * other.q)#乘def __mul__(self, other):return rational(self.p * other.p,self.q * other.q)#除def __div__(self, other):return rational(self.p * other.q,self.q * other.p)#相等def __eq__(self, other):fz = self.simplify()fm = other.simplify()return fz.p == fm.p and fz.q == fm.qdef __float__(self):return float(self.p / self.q)

Python中一切皆对象,如常见的加(+)、减(-)、乘(*)、除(/)、相等(==)都是调用类中的某个方法
eg:

self:指的是调用该函数的对象,指代的是对象本身,和Java中的this相同
r = rational(1,2)
r1 = rational(1,4)
r + r1表示r对象调用+方法,也就是__add__方法,传入r1对象作为参数,可以理解为
r.+(r1)
同理减、乘、除都是

二、Python中的魔法方法

__xx __()的函数叫做魔法方法,指的是具有特殊功能的函数
1、__init __()

  • 构造方法,在实例化对象时默认被调用,不需要手动调用

2、__str __()

  • 当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str
    __方法,那么就会打印从在这个方法中return的数据,相当于Java中重写toString()方法

3、__del __()
当删除对象时,python解释器也会默认调用__del __()方法

del 对象

相关文章:

如何理解Python中一切皆对象?

Python 一、示例代码二、Python中的魔法方法 一、示例代码 有理数类 import mathclass rational:def __init__(self,p,q):self.p pself.q qdef __str__(self):return "{} / {}".format(self.p,self.q)def simplify(self):gcd math.gcd(self.p,self.q)return rat…...

【如何学习Python自动化测试】—— 鼠标键盘操作

5 、 鼠标键盘操作 在浏览器中,通常会用到鼠标来进行操作,比如右键菜单中选择一个操作,在 selenium 中提供了下列鼠标相关操作。 ActionChains 类提供了以下方法: 点击鼠标:click()右击鼠标:context…...

随笔-事儿就这么个事儿

好久没写了,小A要催更,还答应让我写一下他的经历,这还有啥说的,开整。 1、升级 前段时间登录公司的办公系统处理一个事务申请,发现有个粗体标红的通知,是关于今年的晋升名单公示。进去看了一眼&#xff0…...

django理解03 数据库引入

配置 settings.py DATABASES {"default": {"ENGINE": "django.db.backends.mysql",NAME:307_django_db,USER: root,PASSWORD: 123456,HOST: 127.0.0.1,PORT: 3306,} }先创建指定名称的数据库databases create database self_django_db DEFAUL…...

Jtti:windows中apache怎么实现负载均衡

Jtti:windows中apache怎么实现负载均衡 在Windows环境下,你可以使用Apache HTTP Server搭建负载均衡集群。Apache提供了一个模块叫做mod_proxy,它可以用来实现反向代理和负载均衡。以下是一个简单的步骤来配置Apache负载均衡: 步骤…...

2311rust,到43版本更新

1.38.0 流水编译 要编译仓库,编译器不需要完全构建依赖项.相反,只需要它们的"元数据"(即类型,依赖关系,导出列表). 在编译过程的早期生成此元数据.从Rust1.38.0开始,Cargo利用这一点,在准备好元数据后立即自动开始构建依赖的仓库. 检查错误使用mem::{uninitialize…...

前端埋点上报的几种方式

现代Web应用程序中,埋点上报是一种重要的数据收集和分析手段。本文将介绍前端埋点上报的几种常见方式,并详细阐述如何在项目中运用这些方式进行数据上报,以帮助开发者更好地进行数据收集和分析。 上报方式 在前端中,常见的埋点上…...

外部 prometheus监控k8s集群资源

prometheus监控k8s集群资源 一,通过CADvisior 监控pod的资源状态1.1 授权外边用户可以访问prometheus接口。1.2 获取token保存1.3 配置prometheus.yml 启动并查看状态1.4 Grafana 导入仪表盘 二,通过kube-state-metrics 监控k8s资源状态2.1 部署 kube-st…...

centos安装神通数据库

1、安装 wget工具 yum install -y wget2、安装rar解压工具 wget --no-check-certificate http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz tar zxvf rarlinux-x64-5.3.0.tar.gz && cd rar/ && make install3、下载oscar神通数据库(linux 64…...

汇编-PUSHFD和POPFD标志寄存器值压栈和出栈

PUSHFD指令将32位EFLAGS寄存器内容压入堆栈, 而POPFD指令则将栈顶单元内容弹出到EFLAGS寄存器 格式:...

基于SSM的进销存管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

Django DRF限流组件

在DRF中,限流发生在认证、权限之后,限流组件的使用步骤: 1、编写自定义限流类; 2、在settings.py中配置redis; 3、安装django-redis; 4、启动redis服务; 5、局部应用,一般是在核心的视图中使用&…...

UEC++ day7

敌人NPC机制 敌人机制分析与需求 新建一个character类来作为敌人,直接建蓝图设置骨骼网格,因为敌人可能多种就不规定死,然后这个敌人肯定需要两个触发器,一个用于大范围巡逻,一个用于是否达到主角近点进行攻击 注意我…...

win11,安装python,pip,和opencv

1,安装python 在应用商店,输入python,下载安装 2,安装pip 在cmd中,输入pip install SomePackage,安装某一个版本的pip 3,安装opencv 在cmd中,输入 pip3 install opencv-contrib-python -i https://pyp…...

kafka入门(一):kafka消息发送与消费

kafka的基础概念 Producer (消息生产者) 向主题发布消息的客户端应用程序称为生产者(Producer),生产者用于持续不断的向某个主题发送消息。 Consumer (消息消费者) 订阅主题消息的客户端程序称为消费者(Consumer),消费者用于处理生产者产生的消息。 Co…...

CMap数据库筛选化学药物

数据库clue.io 文献链接:连接图谱:使用基因表达特征连接小分子、基因和疾病 |科学 (science.org) 基本模式:利用CMap将差异基因列表与数据库参考数据集比对;根据差异表达基因在参考基因表达谱富集情况得到一个相关性分数&#…...

mysql命令行(mysql-client)连接数据库

有时项目连接不上数据库,报错鉴权失败,先用mysql工具连接下,容易发现问题。 直接输入mysql看是否已安装,如果没有就安装下。 yum -y install mysql-client; 这个名称一直记不准,有时记为mysql-cli,结果发现…...

sklearn中的TfidfTransformer和gensim中的TfidfModel的区别

sklearn.feature_extraction.text.TfidfTransformer 和 gensim.models.TfidfModel 都是用于计算文本数据的 TF-IDF 值的工具。它们的主要区别在于实现方式和输入数据的格式。 1、实现方式和输入数据格式: TfidfTransformer 是 scikit-learn 中的一个类,…...

spring注解

spring注解 Configuration 用于标注配置类Bean 结合Configuration(full mode)使用或结合Component(light mode)使用。可以导入第三方组件,入方法有参数默认从IOC容器中获取,可以指定initMethod和destroyMethod 指定初…...

SpringCloud实用篇02

SpringCloud实用篇02 0.学习目标 1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我…...

3步搞定百度网盘高速下载:Python解析工具实战指南

3步搞定百度网盘高速下载:Python解析工具实战指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 面对百度网盘下载限速的困扰,技术爱好者们一直在寻找…...

【收藏级】2026年大模型入门指南:小白程序员必看,告别AI焦虑,轻松切入AI行业

这篇文章想聊清楚一个很现实的问题:在2026年AI热潮愈演愈烈的今天,小白和程序员到底该怎么低成本进入AI行业? 如果你最近也在焦虑、在内耗,刷到各种AI热点就心慌,不知道该学什么、不知道该怎么开始,甚至担心…...

Go语言嵌入式向量数据库chromem-go:轻量级RAG与语义搜索实践

1. 项目概述:一个为Go而生的嵌入式向量数据库如果你正在用Go语言构建一个需要语义搜索、智能问答或者RAG(检索增强生成)功能的应用,并且不想引入一个笨重的外部数据库服务,那么chromem-go这个项目,你绝对需…...

告别终端黑窗口:Jest + Majestic 打造可视化前端测试工作流

目录 告别终端黑窗口:Jest Majestic 打造可视化前端测试工作流 前言:为什么我们需要前端测试? 一、前端测试全景图:从测试金字塔到工具生态 1. 单元测试:金字塔的基石 2. 组件测试:金字塔的中坚 3. …...

自动驾驶仿真训练平台SIMSCALE的技术解析与应用实践

1. 项目背景与核心价值去年参与某自动驾驶研发项目时,我们团队遇到了真实路测成本高、极端场景覆盖难的问题。当时每天要花费数万元进行车队路测,但遇到暴雨天气或特殊交通状况时,数据采集效率直线下降。正是这种困境让我开始关注仿真技术在自…...

如何用纯CSS实现惊艳的渐变文本动画:10个实用技巧

如何用纯CSS实现惊艳的渐变文本动画:10个实用技巧 【免费下载链接】You-Dont-Need-JavaScript CSS is powerful, you can do a lot of things without JS. 项目地址: https://gitcode.com/gh_mirrors/yo/You-Dont-Need-JavaScript 在现代网页设计中&#xff…...

AMD GPU深度学习优化:ROCm环境配置与性能调优

1. AMD GPU在深度学习领域的现状与挑战AMD GPU在深度学习领域一直处于追赶者的角色,这与CUDA生态的先发优势密不可分。但近年来随着ROCm平台的持续完善,特别是从ROCm 5.0版本开始,AMD显卡在深度学习工作负载上的表现已经能够满足生产需求。我…...

基于SystemC TLM-2.0的RISC-V处理器仿真框架构建与实战

1. 项目概述:一个基于TLM的RISC-V处理器仿真框架最近在处理器架构探索和软件生态早期开发的圈子里,一个绕不开的话题就是如何快速、高效地对一个新设计的CPU进行功能验证和软件移植。传统的FPGA原型验证虽然真实,但迭代周期长,环境…...

特斯拉Model 3/Y CAN总线DBC文件完整指南:轻松读懂车辆数据语言

特斯拉Model 3/Y CAN总线DBC文件完整指南:轻松读懂车辆数据语言 【免费下载链接】model3dbc DBC file for Tesla Model 3 CAN messages 项目地址: https://gitcode.com/gh_mirrors/mo/model3dbc 想要深入了解特斯拉车辆的智能控制系统吗?Model3DB…...

互联网大厂 Java 求职者面试:深入探讨微服务与云原生技术

# 互联网大厂 Java 求职者面试:深入探讨微服务与云原生技术在某互联网大厂的面试现场,面试官严肃地坐在桌子后面,候选人燕双非略显紧张地走了进来。## 第一轮提问**面试官**:首先,我们来聊聊微服务架构。请问您能简单描…...