保存和读取完整的会话
Sage可以非常灵活的保存和读取会话。
命令save_session(sessionname)将所有当前会话中定义的变量保存为字典,并以sessionname命名。(很少有变量不能保存的情况,这时该变量就不会保存到字典中去。)会话保存到.sobj文件中,可以象之前保存的那些对象一样重新读取。当你读取一个会话中的对象时,你会得到一个字典,索引是变量的名字,值是对象。
你可以用load_session(sessionname)命令把定义在sessionname中的变量读取到当前会话。注意,这不会清除你在当前会话中已经定义的那些变量;或者说,合并了两个会话。
首先我们打开Sage并定义一些变量。
sage: E = EllipticCurve('11a')sage: M = ModularSymbols(37)sage: a = 389sage: t = M.T(2003).matrix(); t.charpoly().factor()_4 = (x - 2004) * (x - 12)^2 * (x + 54)^2
下面保存我们的会话,这将上面每一个变量都保存到一个文件中。查看这个文件,大小是3K左右。
sage: save_session('misc')Saving aSaving MSaving tSaving Esage: quitwas@form:~/tmp$ls -l misc.sobj-rw-r--r-- 1 was was 2979 2006-01-28 19:47 misc.sobj
最后我们重新启动Sage,定义另外一个变量,并把我们保存的会话读进来。
sage: b = 19sage: load_session('misc')Loading aLoading MLoading ELoading t
每一个保存的变量都再次可用,而且变量b也没有被覆盖。
sage: MFull Modular Symbols space for Gamma_0(37) of weight 2 with sign 0and dimension 5 over Rational Fieldsage: EElliptic Curve defined by y^2 + y = x^3 - x^2 - 10*x - 20 over RationalFieldsage: b19sage: a389
