【问题标题】:import function from subdictionary从子字典导入函数
【发布时间】:2021-07-15 06:50:17
【问题描述】:

我喜欢从另一个字典 python 文件中导入函数。例如,

A.py包含一个get_total()函数,如果用户'from A import get_total',B.py可以得到这个函数。

但是,当 A.py 需要导入 numpy 模块并在 get_total() 函数中使用 numpy.sum() 时,B.py 无法使用 A 中的 get_total() 函数。导致错误 "NameError: name 'np'未定义”,发生了什么?

A.py:

import numpy as np
def get_total(list):
    return np.sum(list)

B.py:

from A import get_total

a = [1,2,3,4,5]

b=get_total(a)

print(b)

错误:

      1 import numpy
----> 2 def get_total(list):
      3         return numpy.sum(list)
      4 
      5 c = [1,2,3,4,5]

NameError: name 'np' is not defined

【问题讨论】:

  • 在函数中你使用了numpy 而不是np
  • 即使我使用 import numpy as np,同样的错误,我也在 B.py 中 import numpy as np,不起作用
  • 该错误消息与代码不匹配 - 您似乎在没有重新启动 Python 的情况下编辑了源代码。重启 Python。

标签: python python-import


【解决方案1】:

您还需要将 numpy 导入 B.py:

import numpy as np
from A import get_total
a = [1,2,3,4,5]
b=get_total(a)
print(b)

编辑:这不是必需的,因为所有 numpy 计算都发生在 A.py 中,它已导入 numpy。

【讨论】:

  • 我一直在导入,同样的错误,不知道为什么
  • 一个不需要两次导入包。如果在 python 模块中定义了一个函数/类,那么它的所有先决条件都应该在那里完成,而不是其他任何地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
相关资源
最近更新 更多