kuru wrote: > Hi > > I have couple classes in the form of > > class Vector: > def __init__(self,x,y,z): > self.x=x > self.y=y > self.z=z > > This works fine for me. However I want to be able to provide a list, > tuple as well as individual arguments like below > > myvec=Vector(1,2,3) > > This works well > > > However I also want to be able to do > > vect=[1,2,3] > > myvec=Vec(vect) > > I want this class to accept multiple data types but process them as > they are same when the classs deals with the instances. > > thanks > > With your existing class you can use Python's ability to transform a list or tuple into individual arguments using the * notation:
>>> class Vector: ... def __init__(self,x,y,z): ... self.x=x ... self.y=y ... self.z=z ... >>> vl = [1, 2, 3] >>> v = Vector(*vl) >>> v.x 1 >>> v.y 2 >>> v.z 3 >>> Will this do? It seems much simpler than rewriting an already satisfactory class. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 See PyCon Talks from Atlanta 2010 http://pycon.blip.tv/ Holden Web LLC http://www.holdenweb.com/ UPCOMING EVENTS: http://holdenweb.eventbrite.com/ -- http://mail.python.org/mailman/listinfo/python-list