流畅的python-学习笔记_符合python风格的对象

对象表示形式

查看对象说明,可以通过__repr__和__str__方法,前者主要用于开发者,后者主要用于用户,这两个方法分别对内置函数repr和str函数提供支持

向量类

备选构造方法

classmethod和staticmethod

staticmethod用的不是特别多

格式化显示

format函数和str.format函数会调对象的__format__(format_spec)方法,上几个例子

format函数只用了格式规范微语言,str.format还用了格式字符串句法。可先了解format,再了解str.format

私有属性和受保护属性

主要有单下划线开头属性和双下划线开头属性,双下划线会隐式名称转化,单下划线开头的属性不会做处理,但起到提示的作用,不建议访问,但也可以访问。无论单还是双下划线都无法避免显式调用私有属性

使用__slots__节省空间

类属性默认存在__dict__里,这个属性是个字典,属性多时,大量实例会占用较多内存,为生内存可使用__slots__属性。使用了__slots__就会避免使用__default__属性,节省内存

__slots__是为了优化,不是为了约束

也可以显式给用slots属性的实例赋予dict属性,这起不到优化作用

注意如果需要自定义类支持弱引用,需要实现__weakref__属性(是属性不是方法),也需要再__slots__中添加该属性名

继承类使用__slots__时,每个子类都要显式实现,因为这个属性不会继承

当然属性不多时,也不是非得使用__slots__

覆盖类属性

实例默认属性可以通过类属性实现,也可通过__init__实现,如需刷新属性,直接继承修改类属性即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法提高之股票买卖 V

算法提高之股票买卖 V 核心思想&#xff1a;状态机 一共有三种情况 &#xff1a; 空仓&#xff0c;持仓&#xff0c;冻结期f[i,j]表示第i天的状态j状态计算&#xff1a; 如下 #include <iostream>#include <cstring>#include <algorithm>using namespace …

基于鸢尾花数据集的四种聚类算法(kmeans,层次聚类,DBSCAN,FCM)和学习向量量化对比

基于鸢尾花数据集的四种聚类算法&#xff08;kmeans&#xff0c;层次聚类&#xff0c;DBSCAN,FCM&#xff09;和学习向量量化对比 注&#xff1a;下面的代码可能需要做一点参数调整&#xff0c;才得到所有我的运行结果。 kmeans算法&#xff1a; import matplotlib.pyplot a…

音视频开发3 视频基础,图片基础

图片像素&#xff08;Pixel&#xff09; 一张图片是由多少个 像素 构成的。 例如一张图片是由60x50组成的。 位深度 bit depth RGB表示法 红&#xff08;Red&#xff09;、绿&#xff08;Green&#xff09;、蓝&#xff08;Blue&#xff09; 除了24bit&#xff0c;常见的位深…

electron 通信总结

默认开启上下文隔离的情况下 渲染进程调用主进程方法&#xff1a; 主进程 在 main.js 中&#xff0c; 使用 ipcMain.handle&#xff0c;添加要处理的主进程方法 const { ipcMain } require("electron"); 在 electron 中创建 preload.ts 文件&#xff0c;从 ele…

在Linux上使用Selenium驱动Chrome浏览器无头模式

大家好&#xff0c;我们平时在做UI自动化测试的时候&#xff0c;经常会用到Chrome浏览器的无头模式&#xff08;无界面模式&#xff09;&#xff0c;并且将测试代码部署到Linux系统中执行&#xff0c;或者平时我们写个爬虫爬取网站的数据也会使用到&#xff0c;接下来和大家分享…

Kubernetes的restartPolicy解析

目录 1. Always2. OnFailure3. Never4.YAML 示例 在 Kubernetes 中&#xff0c;restartPolicy 是 Pod 规范的一部分&#xff0c;它定义了当容器终止&#xff08;不论是因为正常退出、错误、或者被系统杀死&#xff09;后&#xff0c;Kubernetes 应该如何处理这个容器。restartP…

Elasticsearch初步认识

Elasticsearch初步认识 ES概述基本概念正向索引和倒排索引IK分词器ik_smart最少切分ik_max_word为最细粒度划分 ES索引库基本操作对索引库操作对文档操作 ES概述 Elasticsearch&#xff0c;简称为 ES&#xff0c;是一款非常强大的开源的高扩展的分布式全文检索引擎&#xff0c…

神经网络中的归一化

我们今天介绍一下神经网络中的归一化方法~ 之前学到的机器学习中的归一化是将数据缩放到特定范围内&#xff0c;以消除不同特征之间的量纲和取值范围差异。通过将原始数据缩放到一个特定的范围内&#xff0c;比如[0,1]或者[-1,1]&#xff0c;来消除不同特征之间的量纲和取值范围…

【前沿模型解析】一致性模型CM(一)| 离散时间模型到连续时间模型数学推导

文章目录 1 离散时间模型2 连续时间模型 得到 SDE 随机微分方程2.1 从离散模型到SDE的推理步骤 3 补充&#xff1a;泰勒展开近似 1 − β i \sqrt{1-\beta_i} 1−βi​ ​ CM模型非常重要 引出了LCM等一系列重要工作 CM潜在性模型的数学公式推导并不好理解 一步一步&#xf…

Springboot框架web开发实用功能-02

在些模块中汇总了一些web开发常用的配置和功能。 涉及的模块 springboot-common-config&#xff0c; 端口号&#xff1a;17000 Springboot框架web开发常用功能 Restful接口定义 查询参数 Data public class QueryParam {private String key;private String value; }Control…

微软 VS Code(Visual Studio Code)简介

一&#xff0c;微软 VS Code&#xff08;Visual Studio Code&#xff09;简介&#xff1a; **起源**&#xff1a; - Visual Studio Code&#xff08;简称 VS Code&#xff09;是由微软开发的一款免费、开源的代码编辑器&#xff0c;它于2015年首次发布。 **开发背景**&#x…

C#上位机源程序 下位机单片机实现控制电机

基于C#的上位机编程程序&#xff0c;通过上位机控制下位机实现电脑操作控制步进电机的转动 程序 #include<reg52.h>#define uchar unsigned char#define uint unsigned int#include "2401.h"#include "delay.h"#include "ds18b20.h"sbit I…

SSM框架目录

ssm 知识相关目录主要参考尚硅谷 赵伟风老师的视屏&#xff0c;参考链接为 SSM视频_ SSM技术视频_SSM视频教程_尚硅谷 【注意】有些图片为了简便&#xff0c;所以就直接使用了视屏分析。 1、SSM框架相关知识 SpringFramework 基本概念 链接&#xff1a;SpringFramework 基本…

TypeScript学习日志-第二十二天(Mixins混入)

Mixins混入 一、对象混入 合并 当我们有两个或多个对象的时候&#xff0c;如何将这两个对象合并&#xff0c;如图&#xff1a; interface A {name:string } interface B {age:number } let a:A {name:小明 } let b:B {age:10 } // 1.扩展运算符 浅拷贝 返回新的类型 let c…

力扣每日一题110:平衡二叉树

题目 简单 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,3,3,null,null,4,4] 输出&#xff1a;false示例 3&#xff1a; …

Dubbo:高性能、轻量级的Java RPC框架详解

Dubbo&#xff1a;高性能、轻量级的Java RPC框架详解 文章目录 Dubbo&#xff1a;高性能、轻量级的Java RPC框架详解一、引言二、Dubbo概述三、Dubbo的核心特性高性能轻量级透明化远程方法调用软负载均衡及容错机制服务注册与发现 四、Dubbo的使用方式定义服务接口和实现类发布…

python从0开始学习(四)

目录 前言 1、算数运算符 1.1 //:整除运算符 1.2 %:取模操作 1.3 **&#xff1a;幂运算 2、赋值运算符 3、比较运算符 4、逻辑运算符 5、位运算符 5.1 &&#xff1a;按位与 5.2 |&#xff1a;按位或 5.3 ^&#xff1a;按位异或 5.4 ~&#xff1a;按位取反 5.5…

Linux学习笔记(3)---- Debian测试网速指令及查看是否千兆网卡

测试网速指令 在Debian系统中&#xff0c;测网速的指令主要有以下几种方法&#xff1a; 使用speedtest-cli工具&#xff1a; speedtest-cli是一个常用的网络速度测试工具&#xff0c;可以通过命令行进行安装和运行。首先&#xff0c;需要安装speedtest-cli&#xff1a; sud…

工业物联网技术在生产流程中的应用及优势与挑战——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断发展&#xff0c;物联网技术逐渐渗透到各个行业中&#xff0c;尤其是在工业领域&#xff0c;工业物联网的应用正在逐步重塑生产流程。本文将探讨工业物联网如何影响生产流程&#xff0c;并分析其带来的优势和挑战。 一、工…

k8s保持pod健康

存活探针 Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。如果探测失败&#xff0c;Kubemetes 将定期执行探针并重新启动容器。 Kubemetes 有以下三种探测容器的机制&#xff1a; HTTP GET 探针对容器的 IP 地…