Python Vector Class Constructor Arguments -
i need write class constructor has these criteria: constructor should take single argument. if argument either int or long or instance of class derived 1 of these, consider argument length of vector. in case, construct vector of specified length each element initialized 0.0. if length negative, raise valueerror appropriate message. if argument not considered length, if argument sequence (such list), initialize vector length , values of given sequence. if argument not used length of vector , if not sequence, raise typeerror appropriate message.
im not sure how write appropriate errors, im supposed use class errors:
class failure(exception): """failure exception""" def __init__(self,value): self.value=value def __str__(self): return repr(self.value) >>> vector(3) vector([0.0, 0.0, 0.0]) >>> vector(3l) vector([0.0, 0.0, 0.0]) >>> vector([4.5, "foo", 0]) vector([4.5, 'foo', 0]) >>> vector(0) vector([]) >>> vector(-4) traceback (most recent call last): file "<stdin>", line 1, in ? file "vector.py", line 14, in __init__ raise valueerror("vector length cannot negative") valueerror: vector length cannot negative
here code need add errors, 1 in if statement when int or long value error, , 1 in else statement typeerror: def is_sequence(obj): try: len(obj) obj[0:0] return true except typeerror: return false
class vector: l=[] def __init__(self,object): if(isinstance(object,long) |isinstance(object,int)): x=int(object) if(x<0): else: in range(0,x): l.append(0.0) elif(is_sequence(object)): l.append(object) else:
im not sure how this
class vector: def __init__(self, obj): self.v = [] if(isinstance(obj, (int, long)): # python3 use isinstance(obj, int) if(x < 0): # raise error else: self.v += [0.0] * x else: self.v += obj # raises type error obj not sequence
Comments
Post a Comment