class Ball:
def __init__(self,pos,vel):
self.pos = Vector(pos.x,pos.y)
self.vel = Vector(vel.x,vel.y)
def curx(self):
return (self.pos.x + self.vel.x)
def cury(self):
return (self.pos.y + self.vel.y)
def forcex(velx):
self.vel.deltax(velx)
def forcey(vely):
self.vel.deltay(vely)
class Vector:
def __init__(self,x,y):
self.x = x
self.y = y
def x(self):
return self.x
def y(self):
return self.y
def delx(self,deltax):
self.x = self.x + deltax
def dely(self,deltay):
self.y = self.y + deltay
这是我的两个班级,但是当我初始化并尝试从球中获得curx或cury时:
ball = Ball(Vector(0,0),Vector(0,0))
print ball.curx
我得到:<bound method Ball.curx of <__main__.Ball instance at 0x1142fd0>>
我觉得应该有一个相当简单的答案,我只是没有得到它。
答案 0 :(得分:2)
curx
是Ball
的一种方法。所以,你必须调用它:
print ball.curx()
修改强>
@ user2357112发现了另外两个问题:
Ball.forcex
和Ball.forcey
的定义缺少self
个参数。
Vector.x
和Vector.y
完全没用。您已将x
和y
作为Vector
到self.x
和self.y
的属性。所以,你应该完全删除这些方法。
以下是代码的编写方式:
class Ball:
def __init__(self,pos,vel):
self.pos = Vector(pos.x,pos.y)
self.vel = Vector(vel.x,vel.y)
def curx(self):
return (self.pos.x + self.vel.x)
def cury(self):
return (self.pos.y + self.vel.y)
def forcex(self, velx):
self.vel.deltax(velx)
def forcey(self, vely):
self.vel.deltay(vely)
class Vector:
def __init__(self,x,y):
self.x = x
self.y = y
def delx(self,deltax):
self.x = self.x + deltax
def dely(self,deltay):
self.y = self.y + deltay
ball = Ball(Vector(0,0),Vector(0,0))
print ball.curx()