在内置函数中赋值

Assign Value in builtin function

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

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

但是我写错了

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

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

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

TypeError: 'list' object is not callable

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

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

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

您可以简单地将 pd.Series 重新分配给正确的值:

pd.Series = pd.core.series.Series

这仅在仍然存在对原始 function/class 的引用时有效(在本例中有 pd.core.series.Series)。如果您覆盖了其他地方没有引用的内容,这将不起作用。

再举个例子(基于评论中的一个问题),假设你覆盖了list,你可以使用builtins模块(或__builtin__模块Python2):

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 解释器通常要容易得多(它也应该可以工作),在某些情况下,它可能只是唯一的选择(以防万一没有其他东西引用被覆盖的值。

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

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'>