SymPy中print(type(r))输出异常,求正确运行结果及原因
问题解答
正确运行结果
在标准Python + SymPy环境中,执行以下代码:
from sympy import Function, Symbol x = Symbol('x') r = Function('R')(x) print(type(r))
预期输出应为:<class 'sympy.core.function.AppliedUndef'>
异常输出'R'的可能原因
出现仅输出字符'R'的情况,并非SymPy本身的问题,而是环境或代码执行环节存在异常,常见可能性包括:
- 代码被误修改:实际执行的并非
print(type(r)),或是自定义了type函数覆盖了Python内置的type,例如提前执行过type = lambda obj: obj.func.__name__这类代码,导致type(r)返回字符串'R'。 - 交互式环境的特殊篡改:部分定制化的Python REPL或notebook环境可能修改了
print、type的默认行为,或是对SymPy对象的显示做了非标准处理,但这种情况非常罕见。 - 全局命名空间污染:之前的代码定义了与内置函数同名的变量(如
type),导致后续调用的type并非原生函数。
内容的提问来源于stack exchange,提问作者gwinship
相关产品推荐
相关产品推荐

