1
23
问题是,尽管Python
它告诉编译器在整个文件中
姓名
,它们是真的
物体
,当你写作时
关键是,当你导入一个Python模块时,你得到的是一个对应于顶级包的对象,
从那时起你就可以
或
这仍然会导入包
在前一种情况下,或者
在后者中(尽管两种方法基本上做相同的事情)。这种形式在语义上更像Java的
|
2
6
如果您愿意,可以缩短:
使用全名可以防止具有相同命名子模块的两个包相互碰撞。 |
3
4
如果您想在同一个脚本中使用这两个模块,那么名称空间是区分这两个模块的方便方法。
|
4
3
在Python中,导入并不只是表示您可能会使用某些东西。导入实际上是在模块级执行代码。您可以将导入视为“解释”和创建函数的时刻。任何在init.py级别或不在函数或类定义中的代码都会发生。 导入还生成整个模块名称空间的廉价副本,并将其放入文件/模块/无论导入到何处的名称空间中。IDE会有一个您可能开始键入以完成命令的函数列表。 |
5
3
Python哲学的一部分是 explicit is better than implicit 我还猜测,如果导入是自动的,那么包初始化会困难得多,因为它不会在代码中一致地完成。 |
6
3
您对Python导入的工作方式有点困惑(在Python中,您不能简单地用全名引用模块中的某个内容,这与Java不同;无论您计划如何引用导入的项,都必须首先导入模块。尝试键入
不管怎样。。。原因是什么
当然,你可以选择
|
7
1
除了Java,Python
这与Python的哲学相吻合,即显式优于隐式。有更多的编程语言使模块间的依赖关系比Java更明确,例如Ada。
|
8
1
|
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |