Python中重载或重写的str()函数

时间:2013-09-15 16:38:09

标签: python string

帮助,我加载了大量数据,突然我的str()无效。它不再可调用了。我记得在某些时候我做了str = something之类的作业,现在我甚至不能再打电话给str(1),导致:

TypeError:' str'对象不可调用

致电str会产生''

因此,在这种情况下,无法重新启动解释器,是否还有办法让旧的str()返回以便我可以将此数据写入文件?

2 个答案:

答案 0 :(得分:3)

有几种方法可以重新获取内置str

str = type("")

或者:

import builtins   # __builtin__ in python2
str = builtins.str

举两个例子。


实现相同效果的更“模糊”方式:

del str

这看似错误,但在删除str变量后,当您键入str时,它将在全局变量中搜索,然后在内置函数中搜索,从而实现与其他内容相同的效果解决方案:

>>> str = 1
>>> del str
>>> str(127)
'127'

实际上,这是完全恢复之前作业的唯一方式。如果将str重新分配给其原始值,则仍然使用本地/全局变量而不是内置入口作用域中使用的变量。但是我无法想到这种情况会很重要(除非它在分配局部变量时增加性能)。

答案 1 :(得分:0)

如果你需要打电话。

__builtin__.str

那应该给你原来的str命令。