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