袖扣链接提供了熊猫的DataFrame和以DataFrame.iplot形式的巧妙的iplot之间的接口。下面的前两个输出示例并不让我感到惊讶,但第三个例子却让我感到惊讶。每一个都在一个新的iPython3实例中运行。
import pandas as pd
pd.DataFrame.iplot
Out[1]: AttributeError: type object 'DataFrame' has no attribute 'iplot'
import pandas as pd
import cufflinks as cf
pd.DataFrame.iplot
Out[1]: <function cufflinks.plotlytools._iplot>
import cufflinks as cf
import pandas as pd
pd.DataFrame.iplot
Out[1]: <function cufflinks.plotlytools._iplot>在第一节中,我们看到默认情况下pd.DataFrame不包含iplot。在第二个示例中的Pandas之后导入cufflink时,可以很容易地向DataFrame类添加一个额外的方法,以提供额外的功能。但是,在第三种方法中,DataFrame类将在导入import pandas语句之后在cufflinks语句中定义。附加的方法是如何添加的?这绝对是很方便的,因为我对中间示例如何工作的理解总是需要按顺序导入库,这是不可取的,所以我想知道这里使用的技巧。
发布于 2018-10-24 00:18:23
我很确定这是因为python 缓存器它加载的模块。例如,以下所有表达式都是正确的:
import sys.modules
import pandas as pd
import pandas as pds
print(pd is pds)
print(pd is sys.modules['pandas'])
print(pds is sys.modules['pandas'])指纹:
True
True
Truehttps://stackoverflow.com/questions/46159343
复制相似问题