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

【python实操】python小程序之对象的属性操作

引言

python小程序之对象的属性操作

文章目录

  • 引言
  • 一、对象的属性操作
    • 1.1 题目
    • 1.2 代码
    • 1.3 代码解释
  • 二、思考
    • 2.1 添加属性
    • 2.2 获取属性

一、对象的属性操作

1.1 题目

给对象添加属性

1.2 代码

class Cat:# 在缩进中书写⽅法def eat(self):# self 会⾃动出现,暂不管print(f'{id(self)}, self')print(f'⼩猫{self.name}, 爱吃⻥...')
# 2. 创建对象blue_cat = Cat()
print(f'{id(blue_cat)}, blue_cat')
# 给 蓝猫添加 name 属性
blue_cat.name = '蓝猫'
# 3. 通过对象调⽤类中的⽅法
blue_cat.eat()
# blue_cat 对象调⽤ eat ⽅法, 解释器就会将 blue_cat 对象传给 self
print('_*_' * 30)
# # 创建对象
black_cat = Cat()
black_cat.name = '⿊猫'
print(f"{id(black_cat)}, black_cat")
black_cat.eat()
# black_cat 对象调⽤ eat ⽅法, 解释器就会将 black_cat 对象传给 self

输出结果:
在这里插入图片描述

1.3 代码解释

  • 在python中,self参数是实例方法的第一个参数,代表当前正在调用该方法的对象
  • 当通过一个对象调用方法时,python会自动将这个对象作为第一个参数传递给方法,所以在这个例子中,当blue_cat.eat()被调用时,self参数就是blue_cat对象
  • 当black_cat.eat()被调用时,self参数就是black_cat对象
  • 输出结果将显示两个不同的内存地址,因为blue_cat和black_cat是两个不同的对象,并且会打印出每个对象的name属性和字符串"爱吃鱼…"
  • 此外,还会在两个对象的eat方法调用之间打印一行由_*_组成的分隔线

二、思考

对象的属性操作有添加属性和获取属性两方面

2.1 添加属性

对象.属性名 = 属性值

  1. 类内部添加
    在内部⽅法中, self 是对象,
    self.属性名 = 属性值

在类中添加属性⼀般写在 init ⽅法中

  1. 类外部添加
    对象.属性名 = 属性值 (⼀般不使用)

2.2 获取属性

对象.属性名

  1. 类内部
    在内部⽅法中,self 是对象,self.属性名
  2. 类外部
    对象.属性名(⼀般很少使用)

相关文章:

【python实操】python小程序之对象的属性操作

引言 python小程序之对象的属性操作 文章目录 引言一、对象的属性操作1.1 题目1.2 代码1.3 代码解释 二、思考2.1 添加属性2.2 获取属性 一、对象的属性操作 1.1 题目 给对象添加属性 1.2 代码 class Cat:# 在缩进中书写⽅法def eat(self):# self 会⾃动出现,暂不管print(f…...

HCIP——网络类型及数据链路层协议

目录 网络类型的分类 数据链路层协议 MA网络 以太网协议 P2P网络 HDLC---高级数据链路控制协议 HDLC网络搭建 PPP---点到点协议 PPP协议的优点 PPP数据帧封装结构​编辑 PPP会话的搭建 路建立阶段---LCP建立 认证阶段 PAP CHAP 网络层协议协商阶段---NCP协商 网…...

数据结构——栈与队列的实现(全码)

一 栈的概念 栈是一种特殊的线性表,栈内数据遵循先进后出(LIFO)的原则,对于栈,只能在同一侧进行入栈和出栈操作。 入栈操作和出栈操作是在栈的同一侧进行的,如图示: 对于栈这种数据类型,我们可以采用链表或…...

MacOS编译和安装Poco库的方法

1.从官网git下载最新的poco源代码 在/usr/local路径下创建Poco文件夹,克隆Poco源代码 sudo git clone -b poco-1.13.3-release https://github.com/pocoproject/poco.git2.等了一会后,报错啦!!! error: RPC failed…...

医院管理新境界:Spring Boot技术突破

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…...

Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控

Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控 文章目录 Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控一 获取 prometheus 配置二 配置的内容三 prometheus 的配置1)集群级别的指标2&a…...

渗透测试入门学习——使用python脚本自动跟踪csrf_token实现对网站登录界面的暴力破解

目录 写在前面 使用方法 相关代码 写在前面 最近在学习使用Burp Suite时发现其intruder模块无法实现多种模式的混合使用,就如想要暴力破解账号和口令两个区域并同时跟踪网页的csrf_token时BP似乎不能很方便的实现这一功能,于是自己在练习时就想到了用…...

stc8最小系统使用usb下载程序,关于断电的避坑

首先,按stc官方的原理图做好最小系统。 下面,来看一下stc手册中的操作步骤 USB-ISP 下载程序步骤: 1、按下板子上的 P3.2/INT0 按键,就是 P3.2 接地 2、给目标芯片重新上电,不管之前是否已通电。 电子开关是按下停电后…...

API 数据接口:使用操作流程与安全指南

在当今数字化高速发展的时代,API 数据接口如同构建数字世界的关键纽带,将不同的软件系统和服务紧密连接在一起。无论是企业开发者致力于提升业务效率,还是个人用户追求更便捷的数字体验,深入了解 API 数据接口的使用操作流程以及全…...

elasticsearch 8.2 版本如何设置config/elasticsearch.yml

在Elasticsearch 8.2版本中,`config/elasticsearch.yml`文件是用于配置Elasticsearch的主要配置文件。你可以通过编辑这个文件来设置各种配置选项。以下是一些常见的配置选项及其设置方法: ### 1. 基本配置 #### 集群名称 ```yaml cluster.name: my-cluster ``` #### 节点…...

华为 HCIP-Datacom H12-821 题库 (33)

🐣博客最下方微信公众号回复题库,领取题库和教学资源 🐤诚挚欢迎IT交流有兴趣的公众号回复交流群 🦘公众号会持续更新网络小知识😼 1.VLAN Pool 只要通过一个 SSID 就能够同时支持多个业务 VLAN,从而缩小广播域&#…...

【网络篇】计算机网络——运输层详述(笔记)

目录 一、运输层 1. 概述 2. 运输层和网络层的关系 3. 运输层协议概述 二、多路复用和多路分解 1. 综述 2. 无连接的多路复用与多路分解(UDP) 3. 面向连接的多路复用与多路分解(TCP) 4. Web 服务器与TCP 三、UDP&#x…...

用java编写飞机大战

游戏界面使用JFrame和JPanel构建。背景图通过BG类绘制。英雄机和敌机在界面上显示并移动。子弹从英雄机发射并在屏幕上移动。游戏有四种状态:READY、RUNNING、PAUSE、GAMEOVER。状态通过鼠标点击进行切换:点击开始游戏(从READY变为RUNNING&am…...

java Map中get方法爆错NullPointerException

代码如下&#xff1a; public class Hello {public static void main(String[] args) {Map<Integer,Integer> map new HashMap<>();map.put(2,1);int i map.get(1); System.out.println(i);} }运行出错&#xff0c;看代码很明显是get到一个不存在map的值&#x…...

ElasticSearch备考 -- Multi field

一、题目 Create the index hamlet_2 with one primary shard and no replicas Copy the mapping of hamlet_1 into hamlet_2, but also define a multi-field for speaker. The name of such multi-field is tokens and its data type is the (default) analysed string Reind…...

刷题 图论

面试经典 150 题 - 图 200. 岛屿数量 dfs 标记 visited class Solution { public:// dfs 染色const int direction[4][2] {{-1, 0}, {0, -1}, {1, 0}, {0, 1}};void dfs(vector<vector<char>>& grid, vector<vector<bool>>& visited, int x…...

基于JAVA的鲜花商城管理系统(源码+定制+讲解)鲜花商城管理系统、鲜花商城管理平台、鲜花商城信息管理、鲜花商城系统开发与应用、鲜花在线商城管理系统

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

深圳大学-Java程序设计-选实验1 基础知识练习

实验目的与要求&#xff1a; 实验目的&#xff1a;掌握Java程序设计开发环境的搭建&#xff0c;编写简单Java Project&#xff0c;掌握编译、运行等基本步骤和命令。 实验要求&#xff1a; (1).下载、安装"Java SE Development Kit 20.0.2"最新的版本&#xff0c;需…...

第 33 章 Ajax

第 33 章 Ajax 1.XMLHttpRequest 2.GET 与 POST 3.封装 Ajax 2005 年 Jesse James Garrett 发表了一篇文章&#xff0c;标题为&#xff1a;“Ajax&#xff1a;A new Approach to Web Applications”。他在这篇文章里介绍了一种技术&#xff0c;用他的话说&#xff0c;就叫&…...

LeetCode 209 Minimum Size Subarray Sum 题目解析和python代码

题目&#xff1a; Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray, return 0 instead. Example 1: Input: target 7, nu…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...