[EMAIL PROTECTED] wrote: > - Information about the current line and file as Ruby: > __LINE__ __FILE__ > Instead of the python version: > inspect.stack()[0][2] inspect.stack()[0][1]
(that's (mostly) CPython-dependent, and should be avoided) > - ~== for approximate FP equality str(a) == str(b) > - comparison returns 4 values (i.e. inferior, equal, superior or not > comparable), as in Pliant: "compare" >>> cmp("a", "b") -1 >>> cmp("a", "a") 0 >>> cmp("b", "a") 1 >>> cmp("ä", u"ä") Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeDecodeError: 'ascii' codec can't decode byte /.../ sure looks like four possible outcomes. > - identity function: "identity" as in Common Lisp (probably of little > use in Python). id(a) > - Exception retrying: after catching an exception, tell the snippet to > be re-run "retry" as in Ruby >>> x = 0 >>> while 1: ... try: ... x += 1 ... if x <= 5: ... raise ValueError ... except ValueError: ... print "retry" ... continue ... else: ... break ... retry retry retry retry retry >>> > - object cloning: obj.copy() obj.deepcopy() import copy (cloning is usually a sign of a design problem in python. if you think you need it, you probably don't. if you really think you need it, import copy.) > - recursive "flatten" as in Ruby (useful) if you can define the semantics, it's a few lines of code. if you're not sure about the semantics, a built-in won't help you... etc. </F>
-- http://mail.python.org/mailman/listinfo/python-list