在内置函数中赋值

时间:2018-01-06 09:03:34

标签: python python-3.x pandas built-in

我正在使用Pandas(python)。我想写这一行

a=pd.Series([1,2,3])

但是我错误地把它写成

a=pd.Series=[1,2,3]

当我写出正确的语法时,它会给出错误

ba=pd.Series([1,2,3])
  

TypeError:' list'对象不可调用

因为它分配了列表pd.Series = [1, 2, 3]

>>> pd.Series
[1, 2, 3]

如何从pd.Series删除此列表?

2 个答案:

答案 0 :(得分:4)

您可以简单地将pd.Series重新指定为正确的值:

pd.Series = pd.core.series.Series

仅当仍然存在对原始函数/类的引用时才有效(在这种情况下存在pd.core.series.Series)。如果你覆盖了某些不能引用其他地方的东西,那就无法工作。

仅举一个例子(根据评论中的问题),假设你覆盖list,你可以使用builtins模块(或Python 2中的__builtin__模块) :

list = [1,2,3]          # overwritten list
b = list(range(10))     # throws a "TypeError: 'list' object is not callable"

import builtins
list = builtins.list    # restored
b = list(range(10))     # works

然而,重新启动Python解释器通常会更容易(这也应该有效),在某些情况下,它可能只是唯一的选择(如果没有其他任何东西引用被覆盖的值。

答案 1 :(得分:2)

使用reload buildin函数重新加载模块。

reload(pd)

展示:

>>> import pandas as pd
>>> pd.Series
<class 'pandas.core.series.Series'>
>>> pd.Series=[1,2,3]
>>> pd.Series
[1, 2, 3]
>>> reload(pd)
<module 'pandas' from '.local/lib/python2.7/site-packages/pandas/__init__.pyc'>
>>> pd.Series
<class 'pandas.core.series.Series'>
相关问题