python中的实例方法是否需要一个自变量

问题描述

我正在构建一个简单的平台游戏,并且在我的collided_left类的Coords类中使用了Sprite方法。我在Sprite类中有一个属性,该属性在Coords类中创建了一个对象,但是collided_left方法没有self参数,因此当我尝试在{{ 1}}类,出现Sprite错误。 我可以在不添加self属性的情况下调用该方法吗?

解决方法

Python中的实例方法是否需要一个自变量

是的。方法有三种类型,分别是实例方法,类方法和静态方法。实例方法是旨在对实例进行一些更改或调用另一个实例方法的方法。因此,实例方法必须具有一个自变量。

可以在不添加self属性的情况下调用该方法吗?

您可以将方法更改为静态方法。静态方法是一种既不打算对任何实例类进行任何更改也不打算调用其他实例方法的方法。因此,您不必传递self参数。

如果要声明静态方法,则只需要用内置的staticmethod包装即可。这是示例:

>>> class ThisIsClass():
    @staticmethod
    def your_method_name(a,b):
        return a + b

    
>>> instance = ThisIsClass()
>>> instance.your_method_name(1,2)
3

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...