首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >袖扣是如何在Pandas中注入方法的,即使它以前是被导入的?

袖扣是如何在Pandas中注入方法的,即使它以前是被导入的?
EN

Stack Overflow用户
提问于 2017-09-11 15:34:13
回答 1查看 263关注 0票数 4

袖扣链接提供了熊猫的DataFrame和以DataFrame.iplot形式的巧妙的iplot之间的接口。下面的前两个输出示例并不让我感到惊讶,但第三个例子却让我感到惊讶。每一个都在一个新的iPython3实例中运行。

代码语言:javascript
复制
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语句中定义。附加的方法是如何添加的?这绝对是很方便的,因为我对中间示例如何工作的理解总是需要按顺序导入库,这是不可取的,所以我想知道这里使用的技巧。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-24 00:18:23

我很确定这是因为python 缓存器它加载的模块。例如,以下所有表达式都是正确的:

代码语言:javascript
复制
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'])

指纹:

代码语言:javascript
复制
True
True
True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46159343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档