调用方法的最佳方式 - Python

Best way to call a method - Python

我有这两个 classes,但我想知道在 class.

中调用函数的最佳方法是什么

我喜欢用这个搭配属性:

class myclass():
    def myfunction(self):
        return self.x + self.y

z = myclass()
z.x = 4
z.y = 3
print z.myfunction()

但是不知道对不对。或者我应该使用这个而不是最后一个?

class myclass():
    def myfunction(self,x,y):
        return x + y

z = myclass()
print z.myfunction(4,3)

视情况而定。 xymyclass() 状态的一部分还是它们是与 class 交互的外部事物?

如果 xy 不是 myclass() 实例状态的一部分,则不应将它们存储在属性中。它们将作为参数传入。

假设您有一个 car 对象,您需要知道如果汽车与其他物体相撞会发生什么。 'something else' 不是汽车的一部分,因此您将调用 car.collide() 方法并将 'something else' 作为参数传入:

car.collide(something_else)

但是碰撞时的汽车速度,以及汽车的质量之类的东西,都是汽车对象状态的一部分,所以它们是属性:

car.speed = 80
car.mass = 1200
car.collide(something_else)