我有这两个类,但我想知道在类中调用函数的最佳方式是什么。
我喜欢将这个与属性一起使用:
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)
最佳答案
这取决于。 x
和 y
是 myclass()
状态的一部分还是它们是与类交互的外部事物?
如果x
和y
不是myclass()
实例状态的一部分,它们不应该存储在属性中。它们将作为参数传入。
假设您有一个汽车对象,您需要知道如果汽车与其他物体发生碰撞会发生什么情况。 “其他东西”不是汽车的一部分,因此您可以调用 car.collide()
方法并将“其他东西”作为参数传入:
car.collide(something_else)
但是碰撞时的汽车速度,以及汽车的质量,都是汽车对象状态的一部分,所以它们是属性:
car.speed = 80
car.mass = 1200
car.collide(something_else)
关于python - 调用方法的最佳方式 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28776197/