On Aug 3, 1:20 am, Steven D'Aprano <steve-REMOVE- t...@cybersource.com.au> wrote: > On Mon, 02 Aug 2010 17:19:46 -0700, samwyse wrote: > > Fortunately, I don't need the functionality of the object, I just want > > something that won't generate an error when I use it. So, what is the > > quickest way to to create such an object (replacing the 'pass' in my > > first snippet). My solution is this: > > > class C: > > def filter(self, *args, **kwds): > > pass > > register = C() > > > but it seems like I should be able to do something "better", as measured > > by lines of code, faking more than just a 'filter' method, or both. Any > > ideas? Thanks! > > You want a variation on the Null Object design pattern. > > class NullWithMethods(object): > def __getattr__(self, name): > return self > def __call__(self, *args, **kwargs): > pass > > And in action: > > >>> c = NullWithMethods() > >>> c.spam("hello", "world") > >>> c.something_completely_unlikely.spam.ham("hello", "world", foo=42) > > -- > Steven
JM emailed me a good solution, but yours is great! Thanks! -- http://mail.python.org/mailman/listinfo/python-list