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

实例方法、类方法、静态方法、实例属性、类属性

背景:今天在复习类相关知识的时候,突然想到这几种类型的方法的区别和用法,感觉有点模棱两可,于是总结一下,加深记忆。

定义:想要区别和理解几种方法,首先要定义一个类,要在类中加深理解和记忆。

先看一下实例属性和类属性的定义,有助于理解后面的几种方法。

# here put the import libclass Dogs(object):# 类属性belongTo = "Animals"def __init__(self, name):#实例属性self.name = namedog1 = Dogs("Sunny Chen")print(Dogs.belongTo)  # 类属性通过类访问print(dog1.name)  # 实例属性通过实例访问print(dog1.belongTo)  #类属性也可以被实例访问# print(Dogs.name)  # 但是实例属性无法被类访问

几种方法的区别:

一、类方法:

class CLanguage:#类构造方法,也属于实例方法def __init__(self):self.name = "C语言中文网"self.add = "http://c.biancheng.net"#下面定义了一个类方法@classmethoddef info(cls):print("正在调用类方法",cls)

总结:类方法定义的时候需要用到装饰器(@classmethod),参数是cls,类方法可以使用类名直接调用,当然也可以使用实例对象来调用(通常不建议)。另外还有一点就是类方法是可以访问类属性的,但是无法访问实例属性。

 二、实例方法:

class CLanguage:#类构造方法,也属于实例方法def __init__(self):self.name = "C语言中文网"self.add = "http://c.biancheng.net"# 下面定义了一个say实例方法def say(self):print("正在调用 say() 实例方法")

总结:实例方法定义的时候没有装饰器,第一个参数是self,实例方法不能由类直接调用,需要创建实例对象来调用,实例方法既可以改变类属性,也可以改变实例属性

 三、静态方法

#全局变量
gloab_num=0class TestMothod:#类属性name='ceshi01'target='test mothod'#实例属性,第一个参数是selfdef __init__(self,num,total,function):self.num=numself.total=totalself.function=function@staticmethoddef static_function(arg1,arg2):print(arg1,arg2)print(gloab_num)

总结:需要加装饰器(@staticmethod),参数没有限制,和正常的函数无异,只是无法访问类属性和实例属性,但是可以访问全局变量。既可以使用类调用静态方法也可以用实例对象调用静态方法。

静态方法是类中的"函数”。静态方法主要是用来存放逻辑性的代码,逻辑上属于类,但是和类本身没有关系,也就是说在静态方法中,不会涉及到类中的属性和方法的操作。可以理解为,静态方法是个独立的、单纯的函数,它仅仅托管于某个类的名称空间中,便于使用和维护。

相关文章:

实例方法、类方法、静态方法、实例属性、类属性

背景:今天在复习类相关知识的时候,突然想到这几种类型的方法的区别和用法,感觉有点模棱两可,于是总结一下,加深记忆。 定义:想要区别和理解几种方法,首先要定义一个类,要在类中加深…...

数据结构---二叉树

专栏:数据结构 个人主页:HaiFan. 专栏简介:这里是HaiFan.的数据结构专栏,今天的内容是二叉树。 二叉树树的概念及结构二叉树概念及结构二叉树的概念二叉树的存储结构二叉树的顺序结构及实现大根堆和小根堆堆的实现及其各个接口堆的…...

CMake——从入门到百公里加速6.7s

目录 一、前言 二、HelloWorld 三、CMAKE 界面 3.1 gui正则表达式 3.2 GUI构建 四 关键字 4.1 add_library 4.2 add_subdirectory 4.3 add_executable 4.4 aux_source_directory 4.5 SET设置变量 4.6 INSTALL安装 4.7 ADD_LIBRARY 4.8 SET_TARGET_PROPERTIES 4.9…...

无公网IP,在外公网远程访问RabbitMQ服务「内网穿透」

文章目录前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基础上…...

Node【二】NPM

文章目录🌟前言🌟NPM使用🌟NPM使用场景🌟NPM的常用命令🌟NPM命令使用介绍🌟 使用NPM安装模块🌟 下载三方包🌟 全局安装VS本地安装🌟 本地安装🌟 全局安装&…...

【2023最新】超详细图文保姆级教程:App开发新手入门(2)

上章节我们已经成功的创建了一个 App 项目,接下来我们讲述一下,如何导入项目、编辑代码和提交项目代码。 Let’s Go! 4. 项目导入 当用户创建一个新的应用时,YonStudio 开发工具会自动导入模板项目的默认代码,不需要手动进行代…...

sftp使用

Client端使用Server端的账户username,sftp登录Server,除了IP地址,也可以使用/etc/hosts定义的域名,注意,Client的默认路径:Shell中的当前路径,Server的默认路径:server账户家目录 ​…...

FastGithub---------不再为访问github苦恼

声明:只解决github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 github为什么打不开? 其实不用加速的情况下,使用5G是可以打开的,只是资源加载…...

Spring Boot AOP @Pointcut拦截注解的表达式与运算符

项目场景: 这里主要说下Spring Boot AOP中Pointcut拦截类上面的注解与方法上面的注解,怎么写表达式怎么,还有Pointcut中使用运算符。 PointCut 表达式 拦截注解的表达式有3种:annotation、within、target 1、annotation 匹配有…...

2023年第十四届蓝桥杯javaB组省赛真题

👨‍💻作者简介:练习时长两年半的java博主 📖个人主页:君临๑ 🎞️文章介绍:2023年第十四届蓝桥杯javaB组省赛真题 🎉所属专栏:算法专栏 🎁 ps:点…...

CefSharp.WinForms 112.2.70最新版体验

一、准备 下载最新包及依赖包(对应.NET4.5.2,后续版本可能4.6.2+)到packages中,本地升级更快 NuGet Gallery | CefSharp.WinForms 112.2.70 NuGet Gallery | CefSharp.Common 112.2.70 NuGet Gallery | cef.redist.x64 112.2.7 NuGet Gallery | cef.redist.x86 112.2.…...

leetcode每日一题:数组篇(1/2)

😚一个不甘平凡的普通人,日更算法学习和打卡,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:每日算法学习 💬个人…...

每个企业经营者都应该了解的几个网络安全趋势

每个企业主都应了解的一些网络安全趋势: 1. 对实时数据可见性的需求增加 根据 IBM 发布的调查数据,企业发现并遏制漏洞的平均时间为 277 天。这种漏洞得不到解决的时间越长,泄露的数据就越多。这反过来会对您的业务产生更大的影响。企业需要…...

IDEA操作MongoDB快速上手开发

写在前面:最近在公司实习,需要完成一个实习任务。这个任务用的是SSH框架,数据库需要使用mongoDB完成。由于刚接触MongoDB,所以不是很熟练,在网上查找了大量的资料,许多都是抄来抄去的,运行一堆错误。如今&a…...

从FPGA说起的深度学习(六)-任务并行性

这是新的系列教程,在本教程中,我们将介绍使用 FPGA 实现深度学习的技术,深度学习是近年来人工智能领域的热门话题。在本教程中,旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…...

5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)

综合案例2.0 - 蓝牙遥控小车4- 体感控制成品展示案例说明器件说明小车连线小车源码遥控手柄遥控器连线遥控器代码1.摇杆PS2模块说明2.六轴MPU-6050说明成品展示 案例说明 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机…...

Scala之面向对象

目录 Scala包: 基础语法: Scala包的三大作用: 包名的命名规范: 写包的好处: 包对象: 导包说明: 类和对象: 定义类: 封装: 构造器: 主从…...

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行 使用tensorflow object detection进行训练检测 参考原始代码:https://github.com/tensorflow/models/tree/master/research 我用的是1.x的版本 所以环境必须有gpu版…...

嵌入式工程师如何快速的阅读datasheet的方法

目录 ▎从项目角度来看datasheet ▎各取所需 ▎最后 Datasheet(数据手册)的快速阅读能力,是每个工程师都应该具备的基本素养。 无论是项目开始阶段的选型还是后续的软硬件设计,到后期的项目调试,经常有工程师对着英…...

(三)合约广告

1. 广告位(CPT)合约 系统:广告排期系统 网站把某一个广告位卖给广告商,这段时间归广告商所有,到点了下线 (1)流量选择的维度:时间段、地域等 (2)典型场景…...

AnotherRedisDesktopManager:提升Redis管理效率的全方位解决方案

AnotherRedisDesktopManager:提升Redis管理效率的全方位解决方案 【免费下载链接】AnotherRedisDesktopManager qishibo/AnotherRedisDesktopManager: Another Redis Desktop Manager 是一款跨平台的Redis桌面管理工具,提供图形用户界面,支持…...

沃虎电子:SFP连接器在高速光模块中的应用与选型要点

SFP(Small Form-factor Pluggable)连接器是现代光通信设备的核心接口组件,广泛应用于交换机、服务器、光模块等设备。随着数据中心向400G/800G演进,SFP连接器的性能要求不断提升。本文从工程实践角度,系统介绍SFP连接器…...

安卓玩机神器:无需Root的“搞机工具箱”全功能解析与实战指南

1. 安卓玩机新选择:搞机工具箱为何成为神器? 最近在折腾安卓手机时,发现了一个宝藏工具——搞机工具箱。作为一个长期和安卓系统打交道的玩家,我试过各种需要Root权限的工具,但这款软件最让我惊喜的是它完全不需要Root…...

ABAP - MEMORY ID 的跨程序数据共享实践

1. ABAP内存ID:跨程序数据共享的秘密武器 在SAP开发中,经常会遇到这样的场景:程序A需要某些数据,但获取这些数据的逻辑写在程序B里。传统做法可能是通过接口、数据库表或者文件来中转数据,但这些方法要么太麻烦&#x…...

深度解析 APT:Linux 运维人员的“瑞士军刀”,你真的用对了吗?

在 Linux 的世界里,尤其是对于 Debian 系(如 Ubuntu、Linux Mint)的用户来说,APT 是一个无法绕开的名字。很多初学者在安装软件时,只知道机械地复制粘贴 sudo apt install 命令,却对背后这套强大的机制知之…...

【声音克隆】Qwen3-TTS-12Hz-1.7B-Base优化技巧:如何生成更自然、更逼真的语音

【声音克隆】Qwen3-TTS-12Hz-1.7B-Base优化技巧:如何生成更自然、更逼真的语音 1. 理解Qwen3-TTS的核心能力 1.1 多语言与方言支持 Qwen3-TTS-12Hz-1.7B-Base模型支持10种主要语言和多种方言风格,包括中文、英文、日文等。这种广泛的语言覆盖能力使其…...

nli-distilroberta-base实际项目:高校招生简章关键条款与考生疑问逻辑关系库构建

nli-distilroberta-base实际项目:高校招生简章关键条款与考生疑问逻辑关系库构建 1. 项目背景与需求 高校招生简章通常包含大量专业条款和政策说明,每年都会收到大量考生关于条款理解的咨询。传统的人工解答方式存在几个痛点: 效率低下&am…...

Chainlit前端定制化|通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程

Chainlit前端定制化|通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程 你是不是已经体验过各种在线大模型,但总感觉有些限制?比如数据隐私的担忧、网络延迟的困扰,或者想打造一个完全属于自己的、界面更符合业务需求的AI助…...

免环境配置:Qwen-Image定制镜像让4090D显卡快速跑通视觉语言模型

免环境配置:Qwen-Image定制镜像让4090D显卡快速跑通视觉语言模型 1. 引言 1.1 视觉语言模型的应用价值 在当今AI技术快速发展的背景下,视觉语言模型(VLM)已成为连接计算机视觉与自然语言处理的桥梁。这类模型能够理解图像内容并生成相关文本描述&…...

滑模控制消抖新思路:双曲正切函数VS饱和函数效果实测对比

滑模控制消抖技术深度对比:双曲正切函数与饱和函数的实战解析 在智能控制算法的演进历程中,滑模控制(SMC)因其强鲁棒性成为处理系统不确定性和外部干扰的利器。但传统符号函数带来的高频抖振问题,一直是工程师们亟待解…...