1 前言

一般来说,如果我们要使用类中的方法,一般是实例化类中的对象,然后通过示例来调用函数,比如:

class myClass(object):def __init__(self,x):self.x=xdef printx(self):print(self.x)c=myClass(4)
c.printx()
# 4

这时候,如果我们不实例化对象,直接用类名来调用函数,是不行的

myClass.printx()'''
TypeError                                 Traceback (most recent call last)
<ipython-input-61-249ab211dc29> in <module>
----> 1 myClass.printx()TypeError: printx() missing 1 required positional argument: 'self'
'''

2 classmethod

类方法与类一起使用,因为它的参数始终是类本身。(实例的参数是看不到的)

但是,如果我们希望同时与类交互呢?我们可以使用@classmethod装饰器来创建类方法

class myClass(object):x=1def __init__(self):self.x=x@classmethoddef printx(class_obj):print(class_obj.x)c=myClass()
c.printx()
#1
myClass.printx()
#1

这样的好处是: 不管这个方式是从实例调用还是从类调用,它都用第一个参数把类传递过来.

3 staticmethod

有一些跟类有关系的功能,但在运行时又不需要实例和类参与。在这种情况下。可以用到静态方法

 静态方法对类一无所知,只处理参数。

class myClass(object):def __init__(self,x):self.x=x@staticmethoddef printx():print('hello')c=myClass(1)
c.printx()
#hellomyClass(1).printx()
#hello

python笔记: staticmethod classmethod相关推荐

  1. python的staticmethod,classmethod和装饰器以及闭包的爱恨情仇

    1.这篇文章写的很好,理清了staticmethod和classmethod 2.万物皆对象,需要理清什么是对象?对象和类之间的关系.类和object之间的关系. 3.staticmethod就像是一 ...

  2. python的staticmethod,classmethod和装饰器以及闭包

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/ibelieve8013/article ...

  3. 初学者python笔记(静态属性、类方法、静态方法、类的组合)

    文章目录 类的三大方法 1.静态属性 2.类方法.静态方法 3.三大方法总结 类的组合 1.用法分析 2.面试案例分析 本篇文章是上一篇:初学者python笔记(面向对象编程.类与对象)的后续篇,是关 ...

  4. python中的@classmethod的作用

    推荐 <Python 中的 classmethod 和 staticmethod 有什么具体用途?> 一.简介 1.1 描述 classmethod 修饰符对应的函数不需要实例化,不需要 ...

  5. tkinter 笔记: radiobutton 选择按钮(莫烦python笔记)

    1 主体框架还是那个主体框架 window = tk.Tk() window.title('my window') window.geometry('500x500') 2 设置tkinter的文字变 ...

  6. tkinter 笔记:列表部件 listbox (莫烦python 笔记)

    1  主体框架 主体框架部分还是 import tkinter as tkwindow = tk.Tk() #创建窗口window.title('my window') #窗口标题window.geo ...

  7. python笔记: 生成器

    元素按照某种算法推算出来,我们在循环的过程中不断推算出后续的元素 不必创建完整的list,从而节省了大量的空间 这种一边循环一遍计算的机制,称之为生成器generator 1 列表生成器 把列表生成式 ...

  8. python输出字体的大小_Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格

    Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格 Python 需要创建和读取excel表里面的数据,需要用 openpyxl 这个包,今天安装好备用. 首先,进入C命令窗口 ...

  9. c++ 冒泡排序_干货|python笔记1-冒泡排序

    面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信可以难倒一批的同学,本篇就详细讲解如何用python进行冒泡排序. 基本原理 01概念: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻 ...

  10. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内 ...

最新文章

  1. android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
  2. 你能用大数据创造一个新的商业模型吗?
  3. 将已有项目提交到github/从github上pull到本地
  4. 五、开始学习Excel函数,效率快速提高
  5. 【转】全排列算法非递归实现和递归实现
  6. oracle中directory的使用
  7. 【python】BytesIO与串化
  8. CentOS硬盘挂载之fdisk命令进行查看/分区/格式化/挂载
  9. 三.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---1.项目文件介绍(除主要源码部分)
  10. 全排列递归实现(二)
  11. Android异常总结---ActivityManager: Warning: Activity not started, its current task has been brought to
  12. 计算机三大科学理论是,近代科学最伟大的三大理论:进化论、量子论和计算论...
  13. 移除加密的pdf文件密码
  14. python 打印输出xml数据问题
  15. 制作OTA U盘升级包
  16. python常用模块②
  17. java swing 提示信息,java swing工具提示与不同的消息
  18. 基于AISAS模式的用户分析研究
  19. 毕业设计中使用支付宝沙箱完成在线支付流程
  20. 取消Chrome表单文本框自动填充黄色背景色样式

热门文章

  1. PHP(一) 开发环境搭建
  2. java反射 基本知识
  3. Spark 读 Elasticsearch
  4. Logical Volume Manager(逻辑卷管理)
  5. SimpleDraw-Windows Phone7上的应用
  6. Tensorflow遇到的问题InvalidArgumentError: Graph execution error:2 root error(s) found.解决方法
  7. 算法提高课-图论-差分约束- AcWing 1169. 糖果:spfa求单源最短路、差分约束
  8. PAT甲级1043 Is It a Binary Search Tree :[C++题解]判断二叉搜索树BST、给定前序序列和中序序列
  9. PAT甲级1100 Mars Numbers:[C++题解]进制位、使用stringstream类读入
  10. 汤家凤高等数学基础手写笔记-极限与连续