gpt4 book ai didi

python - 如何直接从 pandas 包导入 Dataframe 类

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:44 27 4
gpt4 key购买 nike

在pandas中我们可以直接做以下事情

import pandas as pd

df = pd.DataFrame()

在这里,pandas 是一个包。 DataFrame 是一个类。那么,这是如何工作的,因为 DataFrame 实际上是在 pandas.core.frame 中定义的(它是在 pandas 核心文件夹内的 frame.py 中定义的。)

注意:我认为这种行为可以通过在 __init__.py 文件中做一些事情来实现。谁能帮助我理解这一点。

最佳答案

__init__.py 在技术上只是另一个 python 模块,因此在包的 __init__.py 中定义的任何名称都可以直接从包本身访问。使用包的 __init__.py 作为 a facade for submodules / subpackages 确实是 Python 中的常见模式。 .

FWIW 请注意,panda 的 __init__.py 是一个使用 __init__.py 作为门面的示例,但并未遵循良好实践,因为它使用了“星形导入” (from submodule import *) 这使得追踪名称的起源(定义它的模块)变得非常痛苦 - 特别是对于像 Panda 这样大的包 - 也非常脆弱,因为如果两个子模块导出相同的名称,那么最后导入的子模块将覆盖第一个。好的做法是始终明确指定要导入的名称:

from submodule1 import foo, bar
from submodule2 import baaz, quux

这清楚地表明了名称的来源,并使重复的名称更加明显:

from submodule1 import foo, bar
from submodule2 import baaz, quux
from submodule3 import foo # oops, we will have to rename either this one or submodule1.foo

关于python - 如何直接从 pandas 包导入 Dataframe 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50987639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com