Ben Finney wrote: > [ ... ] Even worse is the > penchant for ‘foo .bar()’, the space obscures the fact that this is > attribute access.
I like the style sometimes when it helps to break the significantly different parts out of boilerplate: libbnem. BN_add .argtypes = [ctypes.POINTER (BignumType), ctypes.POINTER (BignumType), ctypes.POINTER (BignumType)] libbnem. BN_add .restype = ctypes.c_int libbnem. BN_add_word .argtypes = [ctypes.POINTER (BignumType), ctypes.c_ulong] libbnem. BN_add_word .restype = ctypes.c_int libbnem. BN_sub .argtypes = [ctypes.POINTER (BignumType), ctypes.POINTER (BignumType), ctypes.POINTER (BignumType)] libbnem. BN_sub .restype = ctypes.c_int libbnem. BN_sub_word .argtypes = [ctypes.POINTER (BignumType), ctypes.c_ulong] libbnem. BN_sub_word .restype = ctypes.c_int (there were a lot more in the original program where those came from.) Another take-away might be don't use boilerplate, but in the situation I didn't see a simple way to avoid it. Mel. -- http://mail.python.org/mailman/listinfo/python-list