首页 > 解决方案 > 为什么在某些 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.iglobglob.escape),我们可以import glob as gl(然后使用gl.iglobgl.escape)。

这个问题:python import module vs import module as,没有回答我的问题。

标签: pythonmodulepython-import

解决方案


不,这纯粹是惯例和个人喜好


推荐阅读