调用方法的最佳方式 - 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)
视情况而定。 x
和 y
是 myclass()
状态的一部分还是它们是与 class 交互的外部事物?
如果 x
和 y
不是 myclass()
实例状态的一部分,则不应将它们存储在属性中。它们将作为参数传入。
假设您有一个 car 对象,您需要知道如果汽车与其他物体相撞会发生什么。 'something else' 不是汽车的一部分,因此您将调用 car.collide()
方法并将 'something else' 作为参数传入:
car.collide(something_else)
但是碰撞时的汽车速度,以及汽车的质量之类的东西,都是汽车对象状态的一部分,所以它们是属性:
car.speed = 80
car.mass = 1200
car.collide(something_else)
我有这两个 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)
视情况而定。 x
和 y
是 myclass()
状态的一部分还是它们是与 class 交互的外部事物?
如果 x
和 y
不是 myclass()
实例状态的一部分,则不应将它们存储在属性中。它们将作为参数传入。
假设您有一个 car 对象,您需要知道如果汽车与其他物体相撞会发生什么。 'something else' 不是汽车的一部分,因此您将调用 car.collide()
方法并将 'something else' 作为参数传入:
car.collide(something_else)
但是碰撞时的汽车速度,以及汽车的质量之类的东西,都是汽车对象状态的一部分,所以它们是属性:
car.speed = 80
car.mass = 1200
car.collide(something_else)