Collin Jones wrote: > Hello, > > Is there a Python equivalent to creating "reference" or "pointer"-type > variables as in C++?? I'm trying to create a couple classes that have > something like a container-and-iterator relationship; one class acts as > a data resource (container-like) and can be queried by multiple control > classes if needed (iterator-like). > > If it's of any use, one class will contain all the frames of an > animation and its attributes, and the other will query the former for > image data and those attributes but control the actual animation process > on its own. > > Here is a simple (albeit crappily written) example, in C++, of what I'm > trying to achieve. Perhaps in Python I should be using a different > paradigm than this... that would be fine, as long as I can figure out > something that will serve my purpose. > > #include <iostream> > using namespace std; > > class CrazyRes { > private: > char *astring, *bstring; > public: > void setAString(char *s); > void setBString(char *s); > char *getAString() { return astring; } > char *getBString() { return bstring; } > }; > void CrazyRes::setAString(char *s) > { > astring = new char[255]; > strcpy(astring, s); > } > void CrazyRes::setBString(char *s) > { > bstring = new char[255]; > strcpy(bstring, s); > } > > class CrazyCtrl { > private: > CrazyRes *res; > public: > void attach(CrazyRes *r) { res = r; } > void printAString() { cout << res->getAString(); } > void printBString() { cout << res->getBString(); } > }; > > int main() > { > CrazyRes res; > CrazyCtrl ctrl; > > res.setAString("Hey! A-String!\n"); > res.setBString("Whoa! B-String!\n"); > > ctrl.attach(&res); > ctrl.printAString(); > ctrl.printBString(); > > return 0; > } > > I tried to keep this to the point... thanks in advance for any suggestions. > Basically names are bound to values by reference in Python - a name, or an item in a "container" such as a list or a dictionary, is simply a reference to a value. Assignment binds a new item or name to an existing value.
regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list