`

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类方法和静态方法.docx

    Python类方法和静态方法

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

    在Python编程语言中,类方法、实例方法和静态方法是面向对象编程的重要组成部分。它们各自有不同的用途和调用方式,帮助我们更好地组织和管理代码。接下来我们将深入探讨这些概念及其用法。 首先,实例方法是类中最...

    深入Python类:静态方法与类方法的较量

    - 类方法可以访问类的属性和方法。 - 类方法通常用于创建实例或修改类的状态。 **示例代码:** ```python class Person: count = 0 def __init__(self, name): self.name = name @classmethod def create_...

    Python中的类方法与静态方法:深入理解与实践应用

    在Python编程中,类方法和静态方法是类中定义的函数,它们在处理与类相关的操作时非常有用。类方法通常用于操作类属性,而静态方法则用于执行与类无关的操作。本文将深入探讨Python中的类方法和静态方法,包括它们的...

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

    在Python编程语言中,类的方法有两种特殊的形式:静态方法(Static Method)和类成员方法(Class Method)。这两种方法在设计模式、类的设计以及代码复用方面发挥着重要作用。本文将通过具体的代码示例,详细介绍这...

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

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

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

    在Python编程语言中,类和函数的静态变量通常是指那些在多次调用中保持其值不变的变量。静态变量在其他面向对象的语言如Java或C#中比较常见,但在Python中,由于其动态特性的存在,实现静态变量的方式稍有不同。本篇...

    深入掌握Python中的类方法与静态方法:使用技巧与实践案例

    在Python编程中,类方法和静态方法是面向对象编程的重要组成部分。它们提供了不同的方式来实现代码的封装和复用。类方法至少需要一个类作为第一个参数,通常用于访问和修改类属性。静态方法则不需要任何隐式或显式的...

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

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

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

    Python中的方法分为三种类型:对象方法、类方法和静态方法。这些方法在定义和调用时各有不同,分别承担着不同的职责和功能。下面将详细介绍这三种方法的区别和使用场景。 对象方法: 对象方法是类中最常见的方法...

    python实现静态方法工具类

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

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

    Python中的类方法、对象方法和静态方法是面向对象编程中的重要概念,它们分别有不同的作用和使用场景。在Python中,这些方法都是通过修饰器(decorator)来实现的。 1. 对象方法(Instance Method) 对象方法是与...

    浅谈python 类方法/静态方法

    静态方法不接收`cls`参数,也不直接与类或实例的属性和方法交互。它们通常用于封装一些通用功能,这些功能不需要访问类或实例的状态。 示例: ```python class Student: @staticmethod def add(a, b): return a ...

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

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

    python 类的继承 实例方法.静态方法.类方法的代码解析

    在Python中,一个类可以继承自另一个类,从而获取父类的所有属性和方法。这样可以实现代码的复用和模块化。在上述代码中,`main` 类继承自 `Denglu` 类,因此 `main` 类不仅拥有自己的方法(如 `show` 和 `din`),...

    第十二天 01类方法、静态方法【千锋Python人工智能学院】1

    在Python编程中,类的方法分为三种类型:实例方法、类方法和静态方法,它们各自有特定的使用场景和特点。 1. 实例方法 实例方法是通过实例对象调用的方法,通常第一个参数是`self`,它指向调用该方法的实例对象。...

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

    在Python面向对象编程中,类方法和静态方法是两种特殊的方法,它们在使用上有各自的特点,同时也有别于实例方法。要了解类方法和静态方法,首先需要理解类属性和实例属性的概念。 类属性是属于类本身的属性,它被这...

Global site tag (gtag.js) - Google Analytics