On Dec 15, 1:50 am, Steven D'Aprano <[EMAIL PROTECTED] cybersource.com.au> wrote: > On Fri, 14 Dec 2007 23:06:28 +0100, Bruno Desthuilliers wrote: > > Now the question is: why do you think it's so important for your users > > to only see functions ? What's so wrong with: > > > from state_machine import * > > m = get_state_machine() > > m.set_state(42) > > I can't speak for the "only" part, but it is sometimes really convenient > to have a set of *cough* convenience functions that do the simple stuff > for you. For example: > > import random > random.random() > > is much nicer for the simple cases than: > > import random > prng = random.Random() > prng.random() > > with the advantage that you can still instantiate your own instance if > you need/want to. > > -- > Steven.
I agree, completely! Ok, I think I'm going to provide both the simplified interface and the class to instantiate. Thanks all! Now suppose, this class looks like: class StateMachine(object): def __init__... def function0... def function1... def function2... ... up to many. And later in the library I would like to expose the simplified interface as well: _machine = StateMachine() function0 = _machine.function0 function1 = _machine.function1 function2 = _machine.function2 ... Is there a way to do so in a programmatic way? Like: _machine = StateMachine() for function in {every function in _machine}: function = _machine.function Not that it's difficult to copy-paste some lines, I'm just curious and maybe it would be a tiny bit easier to maintain the library. -- http://mail.python.org/mailman/listinfo/python-list