initializing "parameters" class in Python only once?
alex23
wuwei23 at gmail.com
Wed Jul 16 23:35:24 EDT 2014
On 15/07/2014 3:28 PM, Steven D'Aprano wrote:
> # === module params.py ===
> class Params(object):
> a = 1
> b = 2
>
> @property
> def c(self):
> return self.a**2 + self.b**2 - self.a + 1
>
> params = Params()
> del Params # hide the class
>
>
> Then callers just say:
>
> from params import params
> print params.c
I'd replace the instantiation & deletion of the class in params.py with:
import sys
sys.modules[__name__] = Params()
..and replace the module itself with the parameter object. I'd also add:
__file__ = __file__
...to the class definition to help with debugging. But this is really
just bikeshedding.
It's a shame the property decorator doesn't work at the module level,
though.
More information about the Python-list
mailing list