python 里这两种区别

A().f1() A.f1()

阅读 961
1 个回答

如果 A 是类, 你说的分别相当于是实例方法调用和类方法调用
如:

class MyClass:
    def method(self):
        return '实例方法调用', self

    @classmethod
    def classmethod(cls):
        return '类方法调用', cls

    @staticmethod
    def staticmethod():
        return '静态方法调用'
        
print(MyClass.staticmethod())
print(MyClass.classmethod())
print(MyClass().method())        
$ python3 myclass.py 
静态方法调用
('类方法调用', <class '__main__.MyClass'>)
('实例方法调用', <__main__.MyClass object at 0x10de595c0>)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题