7

可能重复:
为什么需要在 Python 方法中显式添加“self”参数?
Python“自我”解释

这只是为了我自己的熏陶。我正在学习 python 并已使用 python 进入 OOP。我见过的类中方法的每个示例都将“self”作为第一个参数。所有方法都是这样吗?如果是真的,难道不能编写 python 以使这个论点被理解,因此不需要?谢谢。

4

2 回答 2

20

如果您想要一个不需要访问的方法self,请使用staticmethod

class C(object):
    def my_regular_method(self, foo, bar):
        pass
    @staticmethod
    def my_static_method(foo, bar):
        pass

c = C()
c.my_regular_method(1, 2)
c.my_static_method(1, 2)

如果您想访问,而不是实例,请使用classmethod

class C(object):
    @classmethod
    def my_class_method(cls, foo, bar):
        pass

c.my_class_method(1, 2)    
于 2013-01-14T22:23:43.103 回答
3

静态方法不需要 self ,它们在类上操作

在这里看到一个很好的静态解释: Python中的静态类变量

于 2013-01-14T22:22:17.220 回答