On 7/20/2009 9:42 AM, Lacrima wrote:
On Jul 20, 4:05 pm, Jean-Michel Pichavant <jeanmic...@sequans.com>
wrote:
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
Hi, Jean-Michel!
Thanks for your answer.
I am not going to have names like dicts.py and dict1,dict2. That was
just example. I wanted to know if it is correct to have dictionaries
on a module level. Now I know that this is correct. I want to collect
in one module a number of dictionaries, every of which describes a
separate web service. And my function in another module will import
required dictionary, depending on what web service should be used.
Thanks again for the help.
With regards,
Max.
(sorry if my English isn't very proper)
Yeah, you can put just about anything in a separate module/file, but
putting unrelated things in the same module is bad...
For example, if you have apple and banana in a module, and had a
function called slicefruit() to do something to those variables in there
with them, then that would be good. But if you put bicycle and car and
adjustbrakes() in the module with the fruits, or mixed the two groups in
several modules, that would be bad.
Marcus
--
http://mail.python.org/mailman/listinfo/python-list