python 类中staticmethod,classmethod,普通方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 类中staticmethod,classmethod,普通方法相关的知识,希望对你有一定的参考价值。

1.staticmethod:静态方法
和全局函数类似,但是通过类和对象调用。

2.classmethod:类方法
和类相关的方法,第一个参数是class对象(不是实例对象)。
在python中class也是一个真实存在于内存中的对象,不同于其他语言只存在于编译期间。

3.普通方法
和实例相关的方法,通过类实例调用。

4.代码示例

#coding:utf-8
‘‘‘
Created on 2015年5月29日
@author: canx
‘‘‘

class Person:
    def __init__(self):
        print "init"

    @staticmethod
    def sayHello(hello):
        print "sayHell %s"%(hello)

    @classmethod
    def introduce(cls,hello):
        print "introduce %s"%(hello)

    def hello(self,hello):
        print "hello %s"%(hello)

def main():
    Person.sayHello("test")
    Person.introduce("test")
    p=Person()
    p.hello("test")

if __name__==__main__:
    main()

输出结果:

技术分享

以上是关于python 类中staticmethod,classmethod,普通方法的主要内容,如果未能解决你的问题,请参考以下文章

Python类中的字段,方法,属性区别及StaticMethod, Property

python类中的@property和@staticmethod分别有什么用,还有其他的吗?

使用 staticmethod 或 classmethod 装饰器装饰时,类中的 Python LRU 缓存忽略最大大小限制

类中静态方法

Python类总结-ClassMethod, StaticMethod

Python面向对象 | 静态方法 staticmethod