上班时间 只贴看到最厉害的答案 回头总结

http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner

@classmethod

帮助我理解公司一些代码 最重要的一点。开始我百思不得其解,为什么申明的有些类在没有实力化的情况下,直接进行调用都可以直接运行。后来发现了有类方法这种针对类使用的方法。可以直接调用使用。而且还有一点非常重要 我直接摘抄链接里面的话。

  1. cls is an object that holds class itself, not an instance of the class. It's pretty cool because if we inherit our Date class, all children will have from_string defined also.

这意味着 如果超类上没有 有实现一个类方法,那么这个超类的子类可以直接继承并且在下面可以直接使用它,且也 不需要实例化。

@staticmethod

而静态类,可以不用使用参数传递进去。甚至一个都不需要。静态类方法按照我的理解来看的话,其实就是指那些不用不必传递参数,却又跟类相关的方法,比如判断一个 日期是不是日期啊, 对不对啊 是不是啊 这种。 有关 但是又不用传递参数的这种 也是不需要实例化。

记录一个 关于 python 普通方法,静态方法和类方法 的介绍。@classmethod @staticmethod的更多相关文章

  1. python——实例方法、静态方法、类方法、类变量和实例变量浅析

    概述: 实例方法就是类的实例能够使用的方法. 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使用装饰器@staticmethod定义静态方法.类对象和实例都可调用静态 ...

  2. python类的静态方法和类方法区别

    先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. # coding:utf-8 class Foo(object): """类三种方法语法形式&q ...

  3. python中的静态方法和类方法

    在python中,各种方法的定义如下所示: class MyClass(object): #在类中定义普通方法,在定义普通方法的时候,必须添加self def foo(self,x): print & ...

  4. python实例方法、静态方法和类方法

    Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...

  5. 【代码学习】PYTHON中的静态方法和类方法

    一.类方法 是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大 ...

  6. python 全栈开发,Day22(封装,property,classmethod,staticmethod)

    一.封装 封装 : 广义上的 :把一堆东西装在一个容器里 狭义上的 :会对一种现象起一个专门属于它的名字 函数和属性装到了一个非全局的命名空间 —— 封装 隐藏对象的属性和实现细节,仅对外提供公共访问 ...

  7. python中的静态方法、类方法、属性方法(福利:关于几种方法更好的解释)

    该部分的三个属性都是高级方法,平时用的地方不是很多 一.静态方法 静态方法的使用不是很多,可以理解的就看一下,用的地方不是很多 class Dog(object): def __init__(self ...

  8. Python类(六)-静态方法、类方法、属性方法

    静态方法 通过@staticmethod来定义,静态方法在类中,但在静态方法里访问不了类和实例中的属性,但静态方法需要类来调用 # -*- coding:utf-8 -*- __author__ = ...

  9. python 实例方法、静态方法、类方法

    class Date: #构造函数 def __init__(self, year, month, day): self.year = year self.month = month self.day ...

随机推荐

  1. C#中的转换

    11.3  转换 到目前为止,在需要把一种类型转换为另一种类型时,使用的都是类型转换.而这并不是唯一的方式. 在计算过程中,int可以采用相同的方式隐式转换为long或double,还可以定义所创建的 ...

  2. CodeSmith datagridview属性

    private void button1_Click(object sender, EventArgs e) //将数据库里的数据直接显示在datagridview1里面 { SqlConnectio ...

  3. hdfs工作原理

    一.NameNode和DataNode (1)NameNode NameNode的作用是管理文件目录结构,是管理数据节点的.NameNode维护两套数据:一套是文件目录与数据块之间的关系,另一套是数据 ...

  4. How to: Modify a Project System So That Projects Load in Multiple Versions of Visual Studio

    http://msdn.microsoft.com/en-us/library/hh266706(v=VS.110).aspx

  5. php延迟加载的示例

    class a{ ; ; //public $d = 5; public function aa(){ echo self::$b; } public function cc(){ echo stat ...

  6. Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/649737       本博客已迁移到本人独立博客: http://www.yun5u ...

  7. gcc/交叉编译

    一.gcc编译的情况: 1.linux gcc包含的c/c++编译器,gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译. 2.linux gcc的应用: ...

  8. Windows下配置cygwin和ndk编译环境

    cygwin安装 正确的安装步骤其实很简单:1. 下载setup-86_64.exe 2. 直接从网上下载安装,选择包时,顶部选择“default”不变 3. 搜索make,勾选make,cmake, ...

  9. Nodejs学习之一 下载安装与部署nodejs

    1,下载nodejs 访问nodejs官网 www.nodejs.org/download/   下载与机器相匹配的版本   2,安装nodejs 下载下来的msi包一直点击下一步即可   3,部署环 ...

  10. 【转】Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:问题解决方法

    多个人共同操作同一个项目或拷贝项目时,经常会出现类似这样的问题: Undefined symbols for architecture i386: "_OBJC_CLASS_$_xx文件名& ...