用于在父模块和子模块中导入祖父模块的Python最佳实践

时间:2014-12-16 19:35:00

标签: python module python-module

假设我有模块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但它也没有好像很干。

1 个答案:

答案 0 :(得分:1)

我会在parent.py建议的地方重新导入numpy。为了证明理由,我建议你参加PEP 20:

  

显式优于隐式

     

简单比复杂

更好

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

# parent.py

import numpy an np

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