python - 为什么在某些 python 模块上使用 `import as` 而在其他模块上不使用?
问题描述
为什么包在导入时喜欢glob
而不是缩短?psycopg2
除了惯例或个人喜好之外,还有其他原因吗?也许是最佳实践?
示例:为了可读性和减少加载整个包的开销:
# Best practice
from sklearn.metrics import r2_score
model_score = r2_score(arg1, arg2)
# Similarly, to keep names short
import sklearn
model_score = sklearn.metrics.r2_score(arg1, arg2)
类似的例子:长包名只是缩短了,特别是如果使用了包的很多部分
# Best practice
import pandas as pd
import numpy as np
import seaboard as sns
import matplotlib.pyplot as plt
df = pd.DataFrame(dictobject)
w_avg = np.average(mylist, weights=w)
sns.heatmap(df)
plt.show()
# instead of
import pandas
import numpy
import seaboard
import matplotlib
df = pandas.DataFrame(dictobject)
w_avg = numpy.average(mylist, weights=w)
seaborn.heatmap(df)
matplotlib.pyplot.show()
为什么我们不对 glob 做同样的事情?
# Shouldn't this be best practice?
import glob.glob as gl
jpgs = gl('path/*.jpg')
# But instead this seems more prominent:
import glob
jpgs = glob.glob('path/*.jpg')
也许如果我们需要一个glob.glob
鲜为人知的表亲(glob.iglob
或glob.escape
),我们可以import glob as gl
(然后使用gl.iglob
或gl.escape
)。
这个问题:python import module vs import module as,没有回答我的问题。
解决方案
不,这纯粹是惯例和个人喜好
推荐阅读
- python - np where : 无法将 datetime.date 与 unicode 进行比较
- java - 如何使用 WebClient 执行同步请求?
- php - php循环中的“if”
- sql-server - MS SQL 错误:将 varchar 数据类型转换为 datetime 数据类型导致错误
- python - Python-Pandas Dataframe:计数值大于或等于数据框中的值
- python - 将逗号从熊猫中的excel文件转换为点
- python - 使用正则表达式或任何字符串操作在文本中的两个子字符串之间查找字符串
- haskell - IO monad 中的函数组合
- email - 在 gmail url 中发送电子邮件后,是否有任何 url 参数可用于重定向?
- key - 使用枚举动态更改键名