如何在CoCalc中从另一个.sagews文件导入函数与类对象?
问题原因与解决办法
核心问题
CoCalc的.sagews是交互式笔记本文件,内部包含单元格分隔符、元数据等额外内容,并非Python/Sage可直接导入的模块格式。Python的导入机制仅识别纯代码文件(比如.py或Sage专用的.sage文件),所以直接导入.sagews会失败。
解决步骤
提取纯代码到模块文件
把TestUtility.sagews里的类和函数代码单独复制出来,在同一个项目目录下创建新文件TestUtility.sage,内容如下:class TestClass(): def __init__(self, number = 0): self.number = number self.square = number^2 self.cube = number^3 def TestDef(n): return(n,n^2,n^3)在TestCalculations.sagews中正确导入
使用你最初写的导入语句即可:from TestUtility import * TestNumber = TestDef(5) TestClassObject = TestClass(3)
验证结果
- 调用
TestNumber会返回(5, 25, 125) TestClassObject.square的值是9(若要得到25,需创建TestClass(5))
额外小技巧
如果想保留TestUtility.sagews的笔记本记录功能,可在该笔记本里执行%save TestUtility.sage 1(假设代码在第1个单元格),快速将单元格代码导出为.sage模块文件,无需手动复制。
内容的提问来源于stack exchange,提问作者gradintherockies
相关产品推荐
相关产品推荐

