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 -- http://mail.python.org/mailman/listinfo/python-list