+ -
当前位置:首页 → 问答吧 → python中的静态方法和类方法有什么根本的不同?

python中的静态方法和类方法有什么根本的不同?

时间:2010-11-04

来源:互联网

请教静态方法和类方法有什么根本的不同?因为它们实在太相似了
C# code

#coding:utf-8
class A(object):
    "This ia A Class"

    @staticmethod
    def Foo1():
        print("Call static method foo1()\n")

    @classmethod
    def Foo2(cls):
        print("Call class method foo2()")
        print("cls.__name__ is ",cls.__name__)

A.Foo1();
A.Foo2();



结果是:
Python code

Call static method foo1()

Call class method foo2()
cls.__name__ is  A



除了在定义类方法时需要一个参数外,我觉得静态方法和类方法没什么太大的区别.
可不可以认为类方法其实就是静态方法?
它们两个在应用方面有什么不同呢?哪些场景应用中只能用其中的一种而不能用另一种?

作者: Dic4000   发布时间: 2010-11-04

静态方法是属于类的,一般的方法是属于对象的。
一般方法通过对象调用,静态方法通过类调用。
一般方法调用时要传入this指针,我就想到这么多了。

作者: codesnail   发布时间: 2010-11-04