“from math import sqrt”有效,但“import math”无效。是什么原因?

新手上路,请多包涵

我是编程新手,刚刚学习 python。

我正在使用 Komodo Edit 9.0 编写代码。所以,当我写“from math import sqrt”时,我可以毫无问题地使用“sqrt”函数。但是如果我只写“import math”,那么那个模块的“sqrt”函数就不起作用了。这背后的原因是什么?我能以某种方式修复它吗?

原文由 Sheikh Ahmad Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

你有两个选择:

 import math
math.sqrt()

会将 math 模块导入到它自己的命名空间中。这意味着函数名称必须以 math 作为前缀。这是一个很好的做法,因为它避免了冲突并且不会覆盖已经导入到当前命名空间中的函数。

或者:

 from math import *
sqrt()

将从 math 模块导入所有内容到当前命名空间。 这可能会有问题

原文由 fenceop 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你只 import math 调用 sqrt 函数你需要这样做:

 In [1]: import math

In [2]: x = 2

In [3]: math.sqrt(x)
Out[3]: 1.4142135623730951

这是因为 from math import sqrt 给你带来 sqrt 功能,但是 import math 只给你带来模块。

原文由 metersk 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题