gpt4 book ai didi

python - 在 Python 中导入模块 - 最佳实践

转载 作者:IT老高 更新时间:2023-10-28 20:22:53 26 4
gpt4 key购买 nike

我是 Python 新手,因为我想扩展我使用 R 学到的技能。在 R 中,我倾向于加载一堆库,有时会导致函数名冲突。

什么是 Python 的最佳实践。我看到了一些具体的变化,我看不出它们之间有什么区别

import pandasfrom pandas import *from pandas import DataFrame

前两者有什么区别,我应该只导入我需要的东西。此外,对于制作小程序来处理数据和计算简单统计数据的人来说,最糟糕的后果是什么。

更新

我找到了 excellent guide .它解释了一切。

最佳答案

每种形式的缺点

在阅读其他人的代码时(而那些人使用非常不同的导入样式),我注意到以下问题每种风格:

import modulewithaverylongname 会使代码更加困惑使用长模块名称(例如 concurrent.futuresdjango.contrib.auth.backends)并降低这些地方的可读性。

from module import * 让我没有机会从语法上看到,例如,classAclassB 来自同一个模块,并且彼此有很多关系。它使阅读代码困难。(从这样的进口名称可能从较早的导入中隐藏名称是该问题的最小部分。)

从模块导入 classA、classB、functionC、constantD、functionE名字太多让我的短期内存重载我在精神上需要分配给 module 以便连贯地理解代码。

import modulewithaverylongname as mwvln 有时不够的助记符。

适当的妥协

基于以上观察,我开发了以下我自己的代码中的样式:

如果模块名称很短,

import module 是首选样式例如标准库中的大多数包。如果我需要使用模块中的名称,这也是首选样式我自己的模块只有两三个地方;那么清晰胜过简洁("Readability counts")。

import longname as ln 是几乎所有的首选样式其他情况。例如,我可能 import django.contrib.auth.backends as djcab。根据上述标准 1 的定义,将使用缩写经常,因此很容易记住。

根据 "Explicit is better than implicit."规则。

from module import xx 有时仍然出现在我的代码中。我在甚至 as 格式显得夸张的情况下使用它,最著名的例子是 from datetime import datetime(但如果我需要更多元素,我会import datetime as dt)。

关于python - 在 Python 中导入模块 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916878/

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