Simple Python object that allows attribute additions
Lots of times when testing an interface in the command line, it's really convenient to be able to create a simple object that holds a few attributes. It'd be nice if you could do something like this:
obj = object()
obj.foo = 3
but alas, you cannot (object doesn't like getting unexpected attributes added to it).
Mock is a wonderful library for doing actual unit testing etc. But if you find yourself "just needing an object now", this can come in handy:
obj = type('blank_object', (object,), {})()
obj.foo = 3
function_requiring_an_object_with_foo_attribute(obj)
The magic line above essentially creates a new class with the name 'blank_object', inheriting from object, and with no class methods. Then it immediately creates an instance of that class.
What's that you say? Yes, the type function is pretty awesome.
Written by Josh Kuhn
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Python
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#