这是一个语言设计问题。为什么设计者没有使用
import A.B而不是
from A import B假设A是一个包含函数B的模块,那么对import语法使用单一样式不是更好吗?这背后的设计原则是什么?我认为Java风格的导入语法感觉更自然。
发布于 2013-07-06 13:50:50
Python import语句主要用于加载模块和包。您必须先导入模块,然后才能使用它。第二种形式的导入只是一个附加功能,加载模块,然后将模块的某些部分复制到本地名称空间中。
Java import语句用于创建加载到其他模块中的名称的快捷方式。Java import语句不加载任何内容,而只是将内容移动到本地名称空间中。在Java中,您不需要导入模块就可以使用它们。import语句与是否加载模块无关。
因此,这两种语言采用了完全不同的导入方法。imports语句基本上不是在做同样的事情。Python的导入用于加载,而Java导入用于快捷方式。
Java的方法在python中会有一些问题。在Java中,很容易从语法上对什么是类/模块/包进行排序。Python没有这方面的优势。因此,编译器和读者很难确定什么是外部包的引用,什么不是外部包的引用。出于这个原因,Python的设计者选择将其显式地表示出来,并强制您指定要加载的外部模块。
发布于 2013-07-06 13:33:04
一致性。import A.B从不将B添加到本地名称空间,即使在它有效的情况下也是如此;它只是通过A使B可用,这些功能已经很自然了。
发布于 2013-07-06 13:30:34
你可以用模块做到这一点,但不能用函数,例如。
os.path通常是这样导入的
https://stackoverflow.com/questions/17499998
复制相似问题