See the built-in save and load which are made for this purpose. In one session with gdd
defined you can do
sage: save(gdd, 'gdd')
and in another you can do
sage: gdd = load('gdd.sobj')
sage: gdd[0,0]
-eps
It uses pickling internally. If you want you can specify a directory as part of the filename.