python - python 可以有没有 "self"作为第一个参数的类或实例方法吗?

标签 python oop methods

<分区>

我在 Python 的 中看到的每个方法 示例都将 self 作为第一个参数。所有方法都是这样吗?如果是这样,难道不能编写 python 以便仅理解这个论点,因此不需要吗?

最佳答案

如果你想要一个不需要访问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)    

关于python - python 可以有没有 "self"作为第一个参数的类或实例方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327794/

相关文章:

python - 在 lambda 函数中关闭变量

python - 分层索引设置行为存在问题

java - 将父类(super class)类型转换为子类类型?

Javascript:对象如何存储对另一个对象方法的引用,并将其称为 "remotely"?

java - 如何从Java库调用程序启动的方法?

python - Matlab 到 Python - 为什么嵌套 for 循环在 python 中运行频率是两倍?

python - 库只会加载 LD_PRELOAD

java - Java中带有枚举的一种方法类

oop - 单例类 : static properties or non-static properties?

java - 用最少的计算量寻找素数的算法