I'm writing a class in python and I have an attribute that will take a relatively long time to compute, so I only want to do it once.  Also, it will not be needed by every instance of the class, so I don't want to do it by default in __init__.  
I'm new to Python, but not to programming.  I can come up with a way to do this pretty easily, but I've found over and over again that the 'Pythonic' way of doing something is often much simpler than what I come up with using my experience in other languages.
Is there a 'right' way to do this in Python?
The most simple way of doing this would probably be to just write a method (instead of using an attribute) that wraps around the attribute (getter method). On the first call, this methods calculates, saves and returns the value; later it just returns the saved value.
Caching class attributes in Python