【Python的黑魔法】实例方法、静态方法和类方法

class Bird:# classmethod修饰的方法是类方法@classmethoddef fly (cls):print('类方法fly:  ',cls)# staticmethod修饰的方法是静态方法# @staticmethoddef info (p):print('静态方法info: ', p)if __name__ == '__main__':# 调用类方法,Bird类会自动绑定到第一个参数Bird.fly()  #①# 调用静态方法,不会自动绑定,因此程序必须手动绑定第一个参数Bird.info('crazyit')# # 创建Bird对象b = Bird()# # 使用对象调用fly()类方法,其实依然还是使用类调用,# # 因此第一个参数依然被自动绑定到Bird类b.fly()  #②# # 使用对象调用info()静态方法,其实依然还是使用类调用,# # 因此程序必须为第一个参数执行绑定b.info('网络毒刘')

 

总结

实例方法只能被实例对象调用,静态方法(由@staticmethod装饰的方法)、类方法(由@classmethod装饰的方法),可以被类或类的实例对象调用。

 

 

实例方法,第一个参数必须要默认传实例对象,一般习惯用self。


静态方法,参数没有要求。

 

类方法,第一个参数必须要默认传类,一般习惯用cls。

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

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

相关文章

基于dreamweaver软件设计和开发一网站_基于 abp vNext 和 .NET Core 开发博客项目 Blazor 实战系列(一)...

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

CSS边框,背景,边距,溢出

CSS边框,背景,边距,溢出 css边框属性 border:宽度 样式 颜色; border-color; border-style; 边框样式:solid实现,dotted点状线,dashed虚线CSS3的样式 border-radius:圆角处理 box-shadow: x轴偏移 y轴偏移 模糊度 扩散成都 颜色…

LINUX 内存使用情况

# free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KBused 已使用的内存 7852484KBfree 空闲的内存数 205480KBshared 当前已经废弃不用,总是0buffers Buffer 缓存内存数: 290432KBcached Page 缓存内存数:5735024KB(存在关…

vagrant系列教程(四):vagrant搭建redis与redis的监控程序redis-stat(转)

阅读目录 下载redis解压redis编译安装redis配置redisredis开机自启动系统参数的调整上一篇php7环境的搭建 真是火爆,仅仅两天时间,就破了我之前swagger系列的一片文章,看来,大家对搭建环境真是情有独钟。 为了访问量,我…

sps及pps在解码器内传递过程

首先解码器中有一个全局变量seq_parameter_set_rbsp_t SeqParSet[MAXSPS];// MAXSPS32,它是一个指向序列参数集的数组。还有一个全局变量seq_parameter_set_rbsp_t *active_sps;主要为后续解码所用。解码器先将码流中的数据读入临时指针sps,之后存入全局…

【技术分享】Ubuntu下使用微信教程

做后端开发的同学用的Linux(ubuntu),肯定会因为没有适配微信版本会感觉不太舒服,很多时候因为缺少一些办公通讯软件而感到不便。现在已经有很方便的Wine WeChat方案,但是微信在Wine上配置还有许多bug,今天在github上看…

python join函数_Python join()函数

原博文 2016-08-12 10:16 − 今天写python 100例时,有个题目是大致是这样的:已知输入形式是1321,要求输出形式为1123 一开始思路是将输入的字符串用split()函数划分成数组,在对数组进行排序,再用for循环输出 代码附上&…

CSS中的盒子

盒子 盒子模型解释元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用现实中盒子来做比喻,帮助我们设置元素对应的样式。盒子模型示意图如下: 把元素叫做盒子,设置对应的样式分别为:盒子的边框…

分享Kali Linux 2017年第17周镜像文件

分享Kali Linux 2017年第17周镜像文件 Kali Linux官方于4月23日发布2017年的第17周镜像。这次维持了11个镜像文件的规模。默认的Gnome桌面的4个镜像,E17、KDE、LXDE、MATE、XFCE桌面的各一个,手机版的包括ARMEL和ARMHF。有最近要安装Kali Linux系统的&am…

Djang重新整理migrations,解决:Django Table xxx already exist

在开发过程中,由于需求变更或者自我重构,需要清理migrations,以保持代码整洁和后续的可维护性。 场景一 不考虑数据库数据表,可以完全清空数据库里面的表的数据。 步骤: 删除所有migrations find . -path "/migr…

安全随笔2:对称加密应用场景

MD5或者说HASH值是一种不可逆的算法。如果需要从密文还原成明文,那么就需要对称和非对称这两类可逆算法。 首先,简单介绍下这两类算法。图9-1是对称算法的示意图: 图9-1 对称算法 在对称算法中,首先需要发送方和接收方协定一个密钥…

python安装多久_python安装与使用

1、进入官网下载python软件 python-3.4.4.amd64.msi http://www.python.org/download/ 这个软件包含三个环境,如下图:2、双击安装软件 3、设置环境变量path";C:\Python34"; 4、验证是否安装成功 进入cmd中,输入python,如果出现如下…

HADAMARD变换

for (j0;j<16;j) { for (i0;i<16;i) { M1[ i ][j]imgY_org[img->opix_yj][img->opix_xi]-img->mprr_2[k][j][ i ]; 计算当前宏块残差块 M0[i%4][i/4][j%4][j/4]M1[ i ][j]; } } current_intra_sad_20; //…

CSS中的块元素,内联元素,内联块元素

块元素,内联元素,内联块元素 元素就是标签&#xff0c;布局中常用的有三种标签&#xff0c;块元素、内联元素、内联块元素&#xff0c;了解这三种元素的特性&#xff0c;才能熟练的进行页面布局。 块元素块元素&#xff0c;也可以称为行元素&#xff0c;布局中常用的标签如&…

django 与 vue 的完美结合

最近接到一个任务&#xff0c;就是用django后端&#xff0c;前段用vue&#xff0c;做一个普通的简单系统&#xff0c;我就是一搞后端的&#xff0c;听到vue也是比较震惊&#xff0c;之前压根没接触过vue。看了vue的一些文档&#xff0c;还有一些项目&#xff0c;先说一下django…

东芝确定半导体重组计划:保留闪存其他全卖

会计丑闻给日本东芝公司的业绩带来严重影响&#xff0c;为了提高盈利&#xff0c;东芝正在对旗下的半导体、个人电脑、白色家电等业务进行一次重大重组。据日经新闻1月23日报道&#xff0c;东芝已经正式制定了芯片业务重组的详细计划&#xff0c;除了占据优势的闪存芯片之外&am…

python画两条曲线图_python绘制多个曲线的折线图

这篇文章利用的是matplotlib.pyplot.plot的工具来绘制折线图&#xff0c;这里先给出一个段代码和结果图&#xff1a; # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #这里导入你自己的数据 #...... #...... #x_axix&a…

5.19汇总

int block_x 8*(b8 & 0x01)4*(b4 & 0x01);int block_y 8*(b8 >> 1)4*(b4 >> 1);请问下老大 这两句定义是什么意思啊&#xff1f; 带些值进去算一下就知道了 b8 0 1 2 3b4 0 1 2 3 A&#xff1a;0 ........Er…

oracle 截取字指定的字符串

过滤指定的字符串,一字符串有重复的数据内容,所以需要去掉重复的内容,subst()截取 起止下标;instr()获取终止下标位置 例如:substr(p.address, 0, instr(p.address, -, 1, 1)-1) ); case when length(substr(p.address, 0, instr(p.address, -, 1, 1)-1) ) 13 then substr(sub…

[django]django模型中auto_now和auto_now_add

示例: update_time models.DateTimeField(更新时间, defaulttimezone.now) create_time models.DateTimeField(创建时间, auto_now_addTrue) auto_now无论是你添加还是修改对象&#xff0c;时间为你添加或者修改的时间。 auto_now_add为添加时的时间&#xff0c;更新对象时不…