Function 如何在sage中获取符号函数的名称?

Function 如何在sage中获取符号函数的名称?,function,sage,Function,Sage,问题很简单。 我有一个符号功能,比如 var('U I') Z = U / I 现在我想创建一个字典,其中函数名(作为字符串)在这里Z映射到相应的函数。手工做很简单 { 'Z' : Z } 但我希望它是自动创建的。使用str(Z)返回U/I,因此这没有帮助。我查阅了一些文档,但没有找到任何将函数名作为字符串返回的方法。 那我该怎么做呢?提前感谢您的回答。这里的问题是您根本没有创建函数。您已经创建了一个Python变量,它引用了U/I,这是一个“符号表达式”,因此(无论好坏)它本身就是一个变量

问题很简单。 我有一个符号功能,比如

var('U I')
Z = U / I
现在我想创建一个字典,其中函数名(作为字符串)在这里Z映射到相应的函数。手工做很简单

{ 'Z' : Z }
但我希望它是自动创建的。使用
str(Z)
返回
U/I
,因此这没有帮助。我查阅了一些文档,但没有找到任何将函数名作为字符串返回的方法。
那我该怎么做呢?提前感谢您的回答。

这里的问题是您根本没有创建函数。您已经创建了一个Python变量,它引用了
U/I
,这是一个“符号表达式”,因此(无论好坏)它本身就是一个变量。参见我认为相关的示例。这同样适用于
Z(U/I)=U/I
和朋友

你可以

sage: def z(U,I):
....:     return U/I
....: 
sage: z
<function __main__.z>
sage: z.func_name
'z'
sage: Z(U,I) = U/I
sage: z = function("z", nargs=2, eval_func=Z)
Exception AttributeError: AttributeError('sage.symbolic.expression.Expression' object has no attribute '__code__',) in 'sage.symbolic.function.SymbolicFunction._hash_' ignored
sage: z(2,3)
2/3
sage: z.name
<function name>
sage: z.name()
'z'