问题描述
我正在构建一个简单的平台游戏,并且在我的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