繁体   English   中英

如何获取从另一个模块调用的函数的结果对象?

[英]How to take the resulting object of a function called from another module?

想法是这样的-假设我在module2.py有一个名为def run(example):的函数def run(example):作为运行它的结果,它具有一个数据框对象,我们将其df_1 如果我在module1.py内部调用module2.run(example)我将能够继续使用df_1内部的结果module1.py并以所需的方式操作数据吗? 我是否需要将该函数放在module2.py内的类中以执行此操作? 或者如果这是计划,我应该如何构造我的代码?

是的,您可以完全按照您所说的方式进行操作,在module1.py中,只需像“ import module2”一样导入module2.py,或者如果函数在类内,则可以像从“ module2 import classname”中一样导入它。然后,您可以创建该类的对象,然后调用该方法。 您需要从运行功能返回数据框对象才能使用它。 您也可以将其保留在全局范围内,但建议采用这种方式。

例如,如果你有课

from module2 import MyClass
my_obj1 = MyClass()
df1 = my_obj1.run(param1,param2 etc)

module2.run(example)时,它创建了一个在ram中占用空间的对象,并返回了指向该对象的指针。

# Inside module2.py
import pandas as pd

def run(example):
    return pd.DataFrame(1, range(10), range(10))

# Inside module1.py
import module2

df_1 = module2.run(example)
df_1.loc[:] = 2

print(df_1)

   0  1  2  3  4  5  6  7  8  9
0  2  2  2  2  2  2  2  2  2  2
1  2  2  2  2  2  2  2  2  2  2
2  2  2  2  2  2  2  2  2  2  2
3  2  2  2  2  2  2  2  2  2  2
4  2  2  2  2  2  2  2  2  2  2
5  2  2  2  2  2  2  2  2  2  2
6  2  2  2  2  2  2  2  2  2  2
7  2  2  2  2  2  2  2  2  2  2
8  2  2  2  2  2  2  2  2  2  2
9  2  2  2  2  2  2  2  2  2  2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM