【问题标题】:Python best practice for importing grandparent module in parent and child modules在父子模块中导入祖父模块的 Python 最佳实践
【发布时间】:2015-02-15 05:29:28
【问题描述】:

假设我有模块child:

# child.py

import numpy as np
import parent

parent.do_stuff(A = np.array([1,2,3]))

然后在parent:

# parent.py

# Should I import numpy here?

def do_stuff(A):
    print A.T

我的问题是,我是否将numpy 导入parent,即使我知道它不应该用作独立模块?我更喜欢重新import numpy,因为很明显Anumpy array 而不是Python list,但它似乎也不干。

【问题讨论】:

  • 您会记录 A 的预期内容吗?
  • 是的。这是我的答案吗?
  • 视情况而定。如果您真的只想要可能就足够的数组参数。但请注意,您无法检查例如isinstance 或转换非数组参数而不访问 numpy 本身。

标签: python module python-module


【解决方案1】:

我会在parent.py 中建议的地方重新导入 numpy。为了说明理由,我将您推荐给 PEP 20:

显式优于隐式

简单胜于复杂

当然,重新导入 numpy 可以清楚地表明您期望 A 是什么。下面更明确地表明 A 应该是一个 numpy 矩阵:

# parent.py

import numpy an np

def do_stuff(A):
    print np.transpose(A)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2016-10-31
    相关资源
    最近更新 更多