|
class Line(object):
def __init__(self, normal_vector=None, constant_term=None):
self.dimension = 2
if not normal_vector:
all_zeros = ['0']*self.dimension
normal_vector = Vector(all_zeros)
self.normal_vector = normal_vector
if not constant_term:
constant_term = Decimal('0')
self.constant_term = Decimal(constant_term)
self.set_basepoint()
def set_basepoint(self):
try:
n = self.normal_vector
c = self.constant_term
basepoint_coords = ['0']*self.dimension
initial_index = Line.first_nonzero_index(n)
initial_coefficient = n[initial_index]
basepoint_coords[initial_index] = c/initial_coefficient
self.basepoint = Vector(basepoint_coords)
ell1 = Line(normal_vector = Vector(['4.046', '2.836']), constant_term = '0')
print ell1.normal_vector
报错信息:
Traceback (most recent call last):
File "C:\Users\hhf\Desktop\vector\class_line.py", line 160, in <module>
ell1 = Line(normal_vector = Vector(['4.046', '2.836']), constant_term = '0')
File "C:\Users\hhf\Desktop\vector\class_line.py", line 29, in __init__
self.set_basepoint()
File "C:\Users\hhf\Desktop\vector\class_line.py", line 49, in set_basepoint
raise e
TypeError: iteration over non-sequence
迭代无序列
class Vector():
def __init__(self, coordinates):
try:
if not coordinates:
raise ValueError
self.coordinates = tuple([Decimal(x) for x in coordinates])
self.dimension = len(coordinates)
|
|