class punto: def __init__ (A,x=0,y=0): A(x,y) def __call__ (A,x,y): A.x=x; A.y=y def __str__(A): return '%.2f %.2f' %(A.x,A.y) p=punto() print p # 0.00 0.00 p(7,4); print p # 7.00 4.00 --------------------------------------- def __getitem__(A,k): return A.coeff()[k] def __setitem__(A,k,val): if k==0: A.x=val elif k==1: A.y=val elif k==2: A.z=val def __contains__(A,x): return x in A.coeff() def __len__(A): return len(A.coeff()) --------------------------------------- a=vettore(7,3,5) for x in a: print x, # 7.0 3.0 5.0 print a[2]=99; print a, len(a) # 7.00 3.00 99.00 3 --------------------------------------- class punto: def __init__(A,x,y): A.x,A.y=x,y def __cmp__(A,B): return cmp((A.x,A.y),(B.x,B.y)) p=punto(3,5); q=punto(7,1) print p<=q # True --------------------------------------- def somma (*a): return reduce(operator.add,a,0) def prod (*a): return reduce(operator.mul,a,1) print somma(7,5,8,3) # 23 print prod(7,5,8,3) # 840 print map(operator.sub,[8,9,4],[6,1,2]) # [2, 8, 2] print map(operator.neg,[3,5,8,-9,-3,0]) # [-3, -5, -8, 9, 3, 0] --------------------------------------- class numero: def __init__(A,x): A.x=x def __lt__(A,B): print 'Ciao.' a=numero(6); b=numero(9) a print isinstance(77,int) # True print type([3,5,1]) # print isinstance([3,5,1],tuple) # False print type('alfa') # def f(x): pass print type(f) # a=vettore(8,0,2) print type(a) # print isinstance(a,vettore) # True