我是 Python 新手,因为我想扩展我使用 R 学到的技能。 在 R 中,我倾向于加载一堆库,有时会导致函数名冲突。
什么是 Python 的最佳实践。我看到了一些具体的变化,我看不出它们之间有什么区别
import pandas
、from pandas import *
和from pandas import DataFrame
前两者有什么区别,我应该只导入我需要的东西。 此外,对于制作小程序来处理数据和计算简单统计数据的人来说,最糟糕的后果是什么。
更新
我找到了 excellent guide .它解释了一切。
最佳答案
每种形式的缺点
在阅读其他人的代码时(而那些人使用非常 不同的导入样式),我注意到以下问题 每种风格:
import modulewithaverylongname
会使代码更加困惑
使用长模块名称(例如 concurrent.futures
或 django.contrib.auth.backends
)并降低这些地方的可读性。
from module import *
让我没有机会从语法上看到,
例如,classA
和 classB
来自同一个模块,并且
彼此有很多关系。
它使阅读代码困难。
(从这样的进口名称
可能从较早的导入中隐藏名称是该问题的最小部分。)
从模块导入 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/