__main__和class' __ main__有什么区别?

时间:2018-03-02 10:39:52

标签: python

我正在学习类方法。 我看过这个例子

class A(object):
    def foo(self,x):
        print (self,x)

    @classmethod
    def class_foo(cls,x):
        print(cls,x)

    @staticmethod
    def static_foo(x):
        print (x)   

a=A()
a.foo('pic')
a.class_foo('pic')

这是输出

<__main__.A object at 0x7f413121c080> pic
<class '__main__.A'> pic

这有什么实际意义?实施?

1 个答案:

答案 0 :(得分:1)

实施方面,classmethod采用第一个强制性cls参数,而staticmethod则不是这样。

实际意义是你可以调用classmethod而不必先创建一个类对象。在代码中,这是完全有效的:

A.class_foo('pic')

您可以在这篇优秀的SO帖子上阅读有关此主题的更多信息。