Design question.

Jean-Michel Pichavant jeanmichel at sequans.com
Mon Jul 20 09:05:13 EDT 2009


Lacrima wrote:
> Hello!
>
> I am newbie in python and I have really simple question, but I need
> your advice to know how to do best.
> I need to store a number of dictionaries in certain place. I've
> decided to store them in a separate module.
> Like this:
> dicts.py
> -----------------------
> dict1 = {....}
> dict2 = {....}
> dict3 = {....}
>
> Then, when I need any dictionary, I can access it:
> import dicts
> dicts.dict1
>
> Is it a good practice? Or should I store them as class attributes or
> anything else?
>
> Thanks in advance.
>
> With regards, Max
> (sorry if my English isn't very proper)
>   
Defining dict as a module attribute ic correct, but try to answer the 
following question:

Is dict1 an attribute/property/declension of the object/entity defined 
by the module dicts ?
If yes, then your design is correct.

An correct example:
fruits.py
------------
apple = {}
banana = {}

An incorrect one:
fruit.py
-----------
apple={}
bicycle={}

Basically, the rule is very straightforward, set your dict as a module 
attribute only if its one of its attribute (very nice paraphrase !)
Most of people (including me) tend to have a  module, where they put 
everything they have no idea about their location. This is a bad habit 
and result from a uncontrolled/undocumented design. Usually documenting 
objects in such modules is really painful.

Your proposal is fine from a python syntax point of view. I can't tell 
of your design with names like (dicts.py and dict1,dict2) hoping you do 
not intend to name them that way.

JM



More information about the Python-list mailing list