元组类对象不带值

时间:2015-07-29 20:30:00

标签: python function object

我用行AB = Vector2.from_points(A, B)

创建了一个Vector2类的实例

但是TypeError: object() takes no parameters

出现了python错误

AB = Vector2.from_points(A,B)

并在线return Vector2(cls, P2[0]-P1[0], P2[1]-P1[1])

所以我想这本书可能是错的(我正在看书中的例子)。我从def from_points语句中减去Vector2和cls,以便......

新行如下所示:return (P2[0]-P1[0], P2[1]-P1[1])

当我这样做时,接收来自def from_points的矢量值也等于(5,10)

然后python出错:

print AB.get_magnitude()

AttributeError: 'tuple' object has no attribute 'get_magnitude'

因此,如果没有与Vector2和cls相关的代码,程序将不会将AB作为类对象读取,但似乎我没有将其格式化,因此它不会通过。

我已经坚持了好几天。

#Vector Test
import math

class Vector2(object):

def _init_(self, x=0.0,y=0.0):
    self.x = x
    self.y = y

def _str_(self):
    return"(%s,%s)"%(self.x,self.y)

@classmethod
def from_points(cls, P1, P2):
    return Vector2(cls, P2[0]-P1[0],P2[1]-P1[1])

def get_magnitude(self):
    return math.sqrt(self.x**2 + self.y**2)

A = (15.0, 20.0)
B = (20.0, 30.0)
AB = Vector2.from_points(A, B)
print AB
print AB.get_magnitude()

更改代码:

#Vector Test
import math

class Vector2(object):

def _init_(self, x=0.0,y=0.0):
    self.x = x
    self.y = y

def _str_(self):
    return"(%s,%s)"%(self.x,self.y)

@classmethod
def from_points(cls, P1, P2):
    return (P2[0]-P1[0],P2[1]-P1[1])

def get_magnitude(self):
    return math.sqrt(self.x**2 + self.y**2)

A = (15.0, 20.0)
B = (20.0, 30.0)
AB = Vector2.from_points(A, B)
print AB
print AB.get_magnitude()

1 个答案:

答案 0 :(得分:0)

那可能是你的意思。

key_value={"a":"test a","b":"test b updated"}
key_value.each do |k,v|
  {
    k=>v+"extra" 
    #or   
    k=>(v=method(v))
    #trying to add some extra values or by changing v value calling some method 

  }
end