staticmethod

首先要明白两个概念

  绑定方法:但凡是定义在类的内部,并且没有被任何装饰器修饰过的方法,就是绑定方法,并且有自动传值功能。类直接调用该方法时,改方法叫做类的函数属性;对象在调用该方法时,该方法叫绑定方法。

示例:

  只要是类中的函数没有被装饰器修饰,就会自动传值,该函数在对象调用时为绑定方法;类直接调用时,始终为功能函数

class  A:
# @staticmethod
def foo(self):
print("AAA") a = A()
print(a.foo)
print(A.foo)#只要是写成"类名.方法名"的格式,不管该方法在类中是否被装饰器修饰,最终打印得到的都是函数方法,因为对于这种
# 调用方式,类中的方法始终都是类中的方法函数

  当类中的函数被装饰器装饰后,在对象调用时和用类直接调用时,均为功能函数或方法函数

class  A:
@staticmethod
def foo():
print("AAA") a = A()
print(a.foo)
print(A.foo)#只要是写成"类名.方法名"的格式,不管该方法在类中是否被装饰器修饰,最终打印得到的都是函数方法,因为对于这种
# 调用方式,类中的方法始终都是类中的方法函数

  

staticmethod

  作用:

    1.解除类中绑定方法的绑定,使该方法不需要通过"对象.方法名"的形式进行调用,反而直接使用"类名.方法名"的形式调用,使该方法成为类的方法直接使用。

    2.方法在类中定义时,在类名后的()内不需要些self

示例:

  

class  A:
@staticmethod
def foo():
print("AAA") A.foo#使用该方式,可直接调用类中的foo方法,不需要实例化调用

  classmethod

staticmethod、classmethod的使用的更多相关文章

  1. Python staticmethod classmethod 普通方法 类变量 实例变量 cls self 概念与区别

    类变量 1.需要在一个类的各个对象间交互,即需要一个数据对象为整个类而非某个对象服务. 2.同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见. 3.有独立的存储区,属于整个类.   ...

  2. python 类中staticmethod,classmethod,普通方法

    1.staticmethod:静态方法和全局函数类似,但是通过类和对象调用. 2.classmethod:类方法和类相关的方法,第一个参数是class对象(不是实例对象).在python中class也 ...

  3. python staticmethod classmethod

    http://www.cnblogs.com/chenzehe/archive/2010/09/01/1814639.html classmethod:类方法staticmethod:静态方法 在py ...

  4. python中staticmethod classmethod及普通函数的区别

    staticmethod 基本上和一个全局函数差不多,只不过可以通过类或类的实例对象 (python里光说对象总是容易产生混淆, 因为什么都是对象,包括类,而实际上 类实例对象才是对应静态语言中所谓对 ...

  5. Python中的 @staticmethod@classmethod方法

    python类中有三种方法,常见的是实例方法,另外两种是staticmethod装饰的静态方法,和classmethod装饰的类方法. 1.对比 流畅的python里,用一个例子进行了对比: (1)两 ...

  6. python之内置装饰器(property/staticmethod/classmethod)

    python内置了property.staticmethod.classmethod三个装饰器,有时候我们也会用到,这里简单说明下 1.property 作用:顾名思义把函数装饰成属性 一般我们调用类 ...

  7. staticmethod classmethod

    1. 静态方法 @staticmethod 只是名义上归类管,实际上静态方法里访问不了类或者实例中的任何属性 2. 类方法 @classmethod 只能访问类变量,不能访问实例变量 3.属性方法 @ ...

  8. python staticmethod,classmethod方法的使用和区别以及property装饰器的作用

    class Kls(object): def __init__(self, data): self.data = data def printd(self): print(self.data) @st ...

  9. staticmethod classmethod修饰符

    一.staticmethod(function) Return a static method for function.A static method does not receive an imp ...

  10. instancemethod, staticmethod, classmethod & abstractmethod

    实例方法.静态方法.类方法.抽象方法 1.  Python中方法的工作方式(How methods work in Python) A method is a function that is sto ...

随机推荐

  1. Spring、SpringMVC、SpringData + JPA 整合详解

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7759874.html ------------------------------------ ...

  2. leaflet+esri-leaflet+heatmap实现热力图

    1.环境准备 1)下载leaflet.js插件,  官网传送:http://leafletjs.com/ 2)下载esri-leaflet.js插件,  官网传送:http://esri.github ...

  3. uploadify 配置后,页面显示无效果

    uploadify使用的是Flash版本 谷歌浏览器:默认没有开启Flash,进行如下图设置即可

  4. Windows Nodejs 安装教程

    Windows Nodejs 安装教程 1: 访问官方地址 https://nodejs.org/en/download/ 2: 解压压缩包文件到指定目录 我直接把压缩包解压到C盘根目录下,并将文件夹 ...

  5. Visual Assist X 10.6.1830.0 常用快捷键

    Visual Assist X 10.6.1830.0 常用快捷键 1.Alt + G: 在定义与声明之间互跳. 2.Alt + O: 在.h与.cpp之间互跳.(O是字母O,不是数字零) 3.Alt ...

  6. Toxophily

    Problem Description The recreation center of WHU ACM Team has indoor billiards, Ping Pang, chess and ...

  7. visual studio 2013使用github获取代码

    如图点击"视图""团队资源管理器".   点击主页上方的那个插头形状按钮"连接到团队项目".点击"克隆"   然后在克隆 ...

  8. Cache 和 Buffer 都是缓存,主要区别是什么?

    存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址.当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址.如果存有该地址,则将数据返回处理器;如果没有保存该地址 ...

  9. thinkphp碰到的一些小问题

    1. 生成的html自动被去掉换行和空格,压缩挤到一起了. 解决: 开启debug即可,在入口文件增加 define("APP_DEBUG",true); 2. 添加mysql的 ...

  10. java面试题及答案

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...