为什么在某些 python 模块上使用 `import as` 而不是其他模块?
Why use `import as` on some python modules but not others?
为什么像 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
).
这个问题: ,没有回答我的问题。
不,这纯粹是惯例和个人喜好
为什么像 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
).
这个问题:
不,这纯粹是惯例和个人喜好