python 中的static-method (静态函数), classmethod(类函数 ), 成员函数


简介

类似Java、CPP中的类,可以定义static method、class method,python内也可以定义这类方法体。
这是通过python的注解来做的。

定义方法

类函数(@classmethod):定义类方法,可以通过类或者实例调用。方法的第一个参数是class对象。

成员函数: 实例的方法, 只能通过实例进行调用;第一个参数是该实例self。

静态函数(@staticmethod): 定义静态方法,可以通过类或者实例调用。第一个参数不需要是class对象或者实例self、

示例

来自网友的示例,可以看到

#-*-coding:utf-8-*-class PythonMethodSample(object):_g = 1def instanceMethod(self,x):print('executing instanceMethod(%s,%s)' %(self,x))@classmethoddef classMethod(cls,x):print('executing classMethod(%s,%s)' %(cls,x))@staticmethoddef staticMethod(x):print('executing staticMethod(%s)' %x)   a = PythonMethodSample()
a.instanceMethod(1)
a.classMethod(1)
PythonMethodSample.classMethod(1)
a.staticMethod(1)
PythonMethodSample.staticMethod('hi')print(a.instanceMethod)
print(a.classMethod)
printa.staticMethod)

检查输出

executing instanceMethod(<__main__.PythonMethodClass object at 0x1004c3790>,1)
executing classMethod(<class '__main__.PythonMethodClass'>,1)
executing classMethod(<class '__main__.PythonMethodClass'>,1)
executing staticMethod(1)
executing staticMethod(hi)
<bound method PythonMethodClass.instanceMethod of <__main__.PythonMethodClass object at 0x1004c3790>>
<bound method type.classMethod of <class '__main__.PythonMethodClass'>>
<function staticMethod at 0x1004dd410>

python 中的static-method (静态函数), classmethod(类函数 ), 成员函数相关推荐

  1. python classmethod函数_在python中使用与instance和classmethod相同的函数

    {t>在创建一个包装好的对象时,{cd1>不创建一个特殊的方法.像方法一样,每个访问都会创建一个新对象,在本例中是一个新的函数对象.在class A: def __init__(self) ...

  2. python 类函数 成员函数_python中的类函数、静态函数、成员函数以及类变量、成员变量...

    1 classMethodDemo():2 classVar = 'This is a class variable' #类变量,可在类函数或者成员函数中引用,为所有实例共有的 3 def __ini ...

  3. Python中使用static、class、abstract方法

    2019独角兽企业重金招聘Python工程师标准>>> 方法在Python中是如何工作的 方法就是一个函数,它作为一个类属性而存在,你可以用如下方式来声明.访问一个函数: Pytho ...

  4. C++中 线程函数为静态函数 及 类成员函数作为回调函数(转载)

    C++中 线程函数为静态函数 及 类成员函数作为回调函数 线程函数为静态函数: 线程控制函数和是不是静态函数没关系,静态函数是在构造中分配的地址空间,只有在析构时才释放也就是全局的东西,不管线程是否运 ...

  5. python中标识符下划线用作开头_python python中那些双下划线开头的那些函数都是干啥用用的...

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  6. Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...

  7. python中那些双下划线开头的那些函数都是干啥用用的

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  8. python属性名以两个下划线开头_python python中那些双下划线开头的那些函数都是干啥用用的...

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  9. Python中lambda详解(包括内置函数map、reduce、filter、sorted、max)

    文章目录 一.lambda是什么? 1.lambda语法 2.语法详解 二.lambda的使用 1.定义 2.调用 3.替换 4.作返回值 三.lambda作参数 1.map函数 2.reduce函数 ...

最新文章

  1. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)
  2. EOJ Monthly 2020.7 Sponsored by TuSimple 部分题解
  3. 服务器上tomcat修改内存,修改Tomcat运行内存
  4. 基数排序python实现
  5. 简单提升编译速度的一个方法
  6. 神经网络如何处理测试阶段出现的新特征?面向开放环境特征外推的图学习解决方案...
  7. SAP S4HANA使用ABAP获得生产订单的状态
  8. PartitionMotionSearch()函数
  9. 节省大量教科书的三种潜在风险方法
  10. 前端学习(3120):react-hello-react的setstate的一个说明
  11. 数组指定位置添加元素_访问数组的任意位置元素的性能真的一样?
  12. spring boot 使用 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
  13. xsd 生成 java 类_如何从Java类生成XSD
  14. hdu-5495 LCS(置换)
  15. 【ARM 】CMSIS
  16. 光学图像、SAR图像等区别
  17. java银行排队系统_java--面向对象(一个简单的银行排队系统)原理版
  18. 6.0系统xposed框架安装流程
  19. 一个域名引发的血案……
  20. 数据、源代码防泄密解决方案

热门文章

  1. JS引擎、运行时与调用栈概述
  2. 数据结构——图的深度遍历
  3. SharedPreferences 的使用,commit和apply两个方法的区别
  4. 为提高研发和测试质量而规范Scrum项目需求描述
  5. 利用反射自动封装成实体对象
  6. WCF消息之XmlDictionaryWriter
  7. 千万级别数据查询优化_MySQL大数据量分页查询方法及其优化
  8. ext的另一个table布局的例子
  9. php限制下载文件格式,php下载文件 强制任意文件格式下载
  10. P3368 【模板】树状数组 2(区间修改单点查询)