Russ wrote: > I'd like to get output formatting for my own classes that mimics the > built-in output formatting. For example, > > >>>>x = 4.54 >>>>print "%4.2f" % x > > 4.54 > > In other words, if I substitute a class instance for "x" above, I'd > like to make the format string apply to an element or elements of the > instance. Can I somehow overload the "%" operator for that? Thanks. > > On an unrelated matter, I think the complex class in Python is too > complex, so I plan to clean it up and implement it right. (just > kidding, folks!)
yeah, i miss some things in complex implementation for example c=complex() c.abs = 2**0.5 c.angle = pi/2 should result in 1+1j :) or c=complex(1,1) print c.abs # should print 2**0.5 print c.angle # should print pi%2 i think one can implement it with properties but to your question ... >>> class X(object): ... def __float__(self): ... return 1.0 ... def __long__(self): ... return 10l ... def __int__(self): ... return 20 ... def __repr__(self): ... return "i am" ... def __str__(self): ... return "I AM" ... def __complex__(self): ... return 1+1j ... >>> x=X() >>> int(x) 20 >>> long(x) 10L >>> float(x) 1.0 >>> str(x) 'I AM' >>> repr(x) 'i am' >>> print "%s -- %r" % (x,x) I AM -- i am >>> complex(x) (1+1j) >>> -- http://mail.python.org/mailman/listinfo/python-list