Data access from multiple code modules
Bruno Desthuilliers
onurb at xiludom.gro
Wed Jul 12 10:45:41 EDT 2006
simon.hibbs at gmail.com wrote:
> Lets say that I have an application consisting of 3 files. A main.py
> file, gui.py and a data.py which handles persistent data storage.
> Suppose data.py defines a class 'MyDB' which reads in data from a
> database, and main.py creates an instance of this object. How does code
> in gui.py access this object?
Obviously, you need to pass whatever relevant to this code...
> Here's simplified pseudocode:
>
> MAIN.PY
> import gui, data
> DataObject = data.MyDB(blah)
>
> How do I write code in gui.py that can access DataObject?
Passing DataObject to code in guy.py seems like a very straightforward
solution...
> Is this
> entirely the wrong way to approach this sort of problem?
> Actualy the problem is more complex because the GUI consists of a main
> GUI form, and panels defined as seperate objects in seperate files.
> Various panels will contain controlls for manipulating data in the
> DataObject, or wherever data storage end up.
Hmmm... Hard to tell without seeing the code (and I've not done GUI
programmer for a long time), but putting application logic in the GUI is
usually a bad idea IME. Better to put the application logic in a
separate controler (that has a reference to the model -> here your
DataObject), and have the GUI part call on the controler.
>
> Best regards,
>
> Simon Hibbs
> (who strugles to get his head round this OOP stuff sometimes).
Well, actually one can do MVC without OO. It's more a matter of
separating concerns. Now I agree that it's not always obvious to know
for sure which part should be responsible for what...
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb at xiludom.gro'.split('@')])"
More information about the Python-list
mailing list