`

python的类方法和类的静态方法

 
阅读更多

python的类方法和类的静态方法,其实就是一个用@classmethod和@staticmethod修饰的类中的函数。其中类方法要在定义的时候指出在调用它时隐式赋给他的第一个参数,这个参数一般情况下是类本身(cls),这个有点像类的实例方法中代表类实例本身的self。类的静态方法在定义的时候就不用定义这个参数,因为他是静态方法不属于任何一个类实例。

========================================================================
类方法
classmethod( function) 

Return a class method for function. 
A class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom: 
为一个函数返回一个类方法
类方法隐式的接受类作为它的第一个参数,就像对象方法隐式的接受当前对象作为第一个参数一样.这样定义一个类方法:

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

The @classmethod form is a function decorator - see the description of function definitions in chapter 7 of the Python Reference Manual for details. 
@classmethod是修饰方法的写法-请查阅Python手册第七章里面关于函数定义的描述.

It can be called either on the class (such as C.f()) or on an instance (such as C().f()). The instance is ignored except for its class. If a class method is called for a derived class, the derived class object is passed as the implied first argument. 
它可以通过类调用(比如C.f()),也可以通过对象实例调用(比如C().f()).真正发挥作用的是类而不是类的实例对象.如果一个类方法被一个子类调用,这个子类的对象实例会作为第一个参数传给类方法.

Class methods are different than C++ or Java static methods. If you want those, see staticmethod() in this section. New in version 2.2. Changed in version 2.4: Function decorator syntax added. 
Python的类方法不同于C++或Java的静态方法.如果你想要的是那样的静态方法,请查看staticmethod()方法,

=====================================================================
类的静态方法

staticmethod(function)
Return a static method for function.
为一个函数返回一个静态方法

A static method does not receive an implicit first argument. To declare a static method, use this idiom:
一个静态方法不接受一个隐式的第一个参数,要声明一个静态方法,用下面的方式:
class C:
    @staticmethod
    def f(arg1, arg2, ...): ...
    
The @staticmethod form is a function decorator – see the description of function definitions in Function definitions for details.
@staticmethod是一个函数修饰器。

It can be called either on the class (such as C.f()) or on an instance (such as C().f()). The instance is ignored except for its class.
可以通过类(C.f())或者类实例(C().f())来调用。通过类实例来调用起作用的其实是类,而不是类实例。

Static methods in Python are similar to those found in Java or C++. For a more advanced concept, see classmethod() in this section.
python的静态方法和java与c++中的很像。一些更高级的概念看classmethod()这一节。

For more information on static methods, consult the documentation on the standard type hierarchy in The standard type hierarchy.
关于静态函数更多的信息,看The standard type hierarchy中标准类型继承的文档。

分享到:
评论

相关推荐

    Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析

    主要介绍了Python 类方法和实例方法(@classmethod),静态方法(@staticmethod),结合实例形式分析了Python 类方法和实例方法及静态方法相关原理、用法及相关操作注意事项,需要的朋友可以参考下

    Python实例方法、类方法、静态方法的区别与作用详解

     定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);  调用:只能由实例对象调用。 类方法  定义:使用装饰器@classmethod。第一个参数...

    python类和函数中使用静态变量的方法

    主要介绍了python类和函数中使用静态变量的方法,实例分析了三种常用的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    详解Python中的静态方法与类成员方法

    主要介绍了关于Python中静态方法与类成员的相关资料,文中通过示例代码给大家详细总结了两者在语法和使用上的区别,有需要的朋友可以参考借鉴,下面来一起看看吧。

    Python程序基础:类方法和静态方法.pptx

    类方法和静态方法;类方法是类所拥有的方法,需要用修饰器“@classmethod”来标识其为类方法。对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(同self一样只是一个习惯),能够通过对象名调用类方法,...

    python实现静态方法工具类

    在这个文件中,可以像 Java 中的静态方法一样,定义函数或类方法,只需在函数名或方法名前加上 @staticmethod 或者不加,即可定义成静态方法,无需实例化相关对象即可直接调用。 在 Python 中,可以使用模块(Module...

    Python3.0中普通方法、类方法和静态方法的比较

    刚接触Python中的面向对象,对于类方法和静态方法难以区分,通过查找知乎、CSDN论坛,废了好大的劲思路才逐渐明朗,所以就总结顺便分享一下。 首先开始编辑代码 # 普通方法、类方法、静态方法的比较 # 普通方法、...

    python中的对象方法、类方法、静态方法.pdf

    python中的对象方法、类方法、静态方法的区别以及python代码示例

    解析python 类方法、对象方法、静态方法

    主要介绍了解析python 类方法、对象方法、静态方法的的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下

    【Python入门基础】静态方法与类方法

    何时定义静态方法和类方法:当你的某个函数与其它函数没有任何关系,就可以定义,静态方法和类方法只是为了方便调用,不需要创建实例,直接类名.函数名就可以调用。 静态方法 静态方法为类所有,可以通过对象来使用...

    浅谈python 类方法/静态方法

    主要介绍了python 类方法/静态方法的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下

    python(类、静态、属性方法)_.mp4

    ython 类语法中有三种方法,实例方法,静态方法,类方法。 ps.python中self,cls的区别 普通实例方法,第一个参数需要是self,它表示一个具体的实例本身。 如果用了staticmethod,那么就可以无视这个self,而将这...

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

    本篇文章是上一篇:初学者python笔记(面向对象编程、类与对象)的后续篇,是关于Python中面向对象编程的更深入分析,主要总结了类的三大方法:静态属性、类方法、类的组合方面的重点知识 类的三大方法 Ps:请先看...

    Python 静态方法和类方法实例分析

    主要介绍了Python 静态方法和类方法,结合实例形式分析了Python类、实例、静态方法等相关概念、原理与使用技巧,需要的朋友可以参考下

    Python面向对象之静态属性、类方法与静态方法分析

    本文实例讲述了Python面向对象之静态属性、类方法与静态方法。分享给大家供大家参考,具体如下: 1. 静态属性:在函数前加@property,将函数逻辑”封装“成数据属性,外部直接调用函数名,如同调用属性一样。这个...

    python的类方法和静态方法

    本文实例讲述了python的类方法和静态方法。分享给大家供大家参考。具体分析如下: python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马? python中实现静态方法和类方法都...

Global site tag (gtag.js) - Google Analytics