【问题标题】:In programming terms, what do you call this import behavior? [duplicate]在编程术语中,您将这种导入行为称为什么? [复制]
【发布时间】:2018-02-07 18:30:47
【问题描述】:

我有一个名为“const_a.py”的文件 里面有这个

ONE = 1
TWO = 2

然后我有另一个名为“const_b.py”的 const 文件 它有这个

from const_a import *

THREE = 3
FOUR = 4

最后我在 test.py 中打印出一些值

from const_b import *

print(ONE)
print(THREE)

打印出 1 和 3。我原以为它会在尝试打印 ONE 时出错。显然const_b 现在有const_a

这种行为叫什么?是故意的吗?

【问题讨论】:

  • 你认为 import 语句有什么作用?
  • 这种行为有什么令人困惑的地方?
  • 这叫做导入。在const_by.py 中,您执行了from const_a import *,它将const_a 中的所有内容分配给const_b 的全局命名空间中的同名
  • 你已经将const_a中的所有名称导入const_b,然后将const_b中的所有名称导入__main__,所以它没有理由不工作。
  • 哦,正在导入!呃

标签: python


【解决方案1】:

from const_a import * 等效于

import const_a
ONE = const_a.ONE
TWO = const_a.TWO
del const_a

您正在const_b 中创建名称,其值取自const_a 中的同名变量。

【讨论】:

  • 已修复,我认为 :)
猜你喜欢
  • 2017-07-25
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
相关资源
最近更新 更多