📌  相关文章
📜  从 colab 中的另一个单元格读取一个单元格 - Python (1)

📅  最后修改于: 2023-12-03 15:06:30.861000             🧑  作者: Mango

从 colab 中的另一个单元格读取一个单元格 - Python

在 Google Colab 中,我们可以通过使用全局变量和预处理指令来从另一个单元格获取值。在本篇文章中,我们将介绍一些获取单元格值的方法,以及如何将其用于编写更具可维护性的代码。

全局变量

Google Colab 中有一些全局对象可以用来在不同的单元格之间共享数据。其中一个是 get_ipython 函数。这个函数返回了当前 Python 解释器的实例。因此,我们可以使用此实例来访问该解释器中已定义的变量。

例如,假设在单元格 1 中定义了一个名为 text 的变量:

text = "Hello, world!"

然后,在单元格 2 中,我们可以使用 get_ipython 函数访问 text 的值,如下所示:

get_ipython().run_line_magic('store', 'text')

这将把 text 变量添加到全局命名空间中,以便在其他单元格中使用。

在其他单元格中,我们可以使用已定义的变量,例如:

print(text)
预处理指令

另一个获取单元格值的方法是使用预处理指令。在每个单元格的顶部,我们可以使用前缀 % 来运行一些不属于 Python 的命令,例如 lscd。同样,我们也可以使用预处理指令 %store 来存储变量,并在其他单元格中使用。

例如,在单元格 1 中定义一个变量,使用 %store 存储:

text = "Hello, world!"
%store text

然后,在单元格 2 中,我们可以使用 %store 获取 text 的值,如下所示:

%store -r text
print(text)

这将从存储中检索 text 变量的值并打印它。

将以上方法用于代码

例如,我们想要将一个函数定义放在单独的单元格中,并在另一个单元格中使用它。我们可以在函数定义所在的单元格中使用 %store 将函数对象存储起来:

def greeting(name):
    print(f"Hello, {name}!")

%store greeting

然后,在单元格 2 中,我们可以运行以下代码来检索该函数:

%store -r greeting

然后就可以在单元格 2 中使用 greeting 函数了:

greeting("World")

输出:

Hello, World!

这种方法可以很好地用于在同一 Colab 笔记本中重复使用代码。