在python中覆盖list关键字

时间:2017-01-12 14:24:30

标签: python

我用Python编写了一个简短的链表程序,但是没有实现list是python中的关键字,我将LinkedList对象存储到列表中

list = LinkedList()

运行这个程序运行正常,但是现在我遇到了另一个需要正常使用list关键字的程序的问题,但它仍然包含对LinkedList对象的引用而不是正确的关键字功能。我已经回到我的LinkedList课程并将list编辑为lst,但我在使用list关键字的类中仍然存在相同的错误。如何将list关键字重置为其原始值?

这是给我一个错误的行:

df = pd.DataFrame(randn(6,4), index = dates, columns = list("ABCD"))

这是错误消息:

  

TypeError:'LinkedList'对象不可调用

2 个答案:

答案 0 :(得分:2)

正如Kroltan在评论中所说,停止阴影内置几乎肯定更好,但是as the Python quote goes

  

我们都同意这里的成年人

所以...

>>> list='axe'
>>> __builtins__.list('abc')
['a', 'b', 'c']

另外,为了好玩,您可以使用type函数将文字转换为其类型函数。

>>> list='chuck testa'
>>> type([])('abc')
['a', 'b', 'c']
>>> type(3)(10.5)
10

答案 1 :(得分:0)

通常覆盖内置网格并不理想,您可以使用del__builtins__进行修复。

使用del重置它:

>>> list = '1,2,3'
>>> list
'1,2,3'
>>> del list
>>> list
<type 'list'>

使用__builtins__.list重置它。

>>> list = '1,2,3'
>>> list
'1,2,3'
>>> list = __builtins__.list
>>> list
<type 'list'>