syntax for code blocks
Kiuhnm
kiuhnm03.4t.yahoo.it
Mon Apr 30 11:02:53 EDT 2012
On 4/30/2012 16:17, mwilson at the-wire.com wrote:
> 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.
BignumTypePtr = ctypes.POINTER(BignumType)
for op, op_word in ((libbnem.BN_add, libbnem.BN_add_word),
(libbnem.BN_sub, libbnem.BN_sub_word)):
op.argtypes = [BignumTypePtr] * 3
op_word.argtypes = [BignumTypePtr, ctypes.c_ulong]
op.restype = op_word.restype = ctypes.c_int
Kiuhnm
More information about the Python-list
mailing list