Python 中的进口:一些问题

Imports in Python: Some Questions

我是初学者,很抱歉这个问题。

在 Python 中导入时,如果我这样做 from star import triangle,我是导入整个星形模块,还是只导入星形模块内部的三角函数?

例如,当我 运行 我的脚本时,python 查看该行时会做什么?

此外,当有人 from . import square 时发生了什么?

我想我也看到有人使用 from ... import square。那又是什么?

问题顺序:

  • 您只从星形模块导入三角形对象(函数,class...)

  • Python 运行定义,检查没有“印刷”错误(并不意味着以后不会有运行时错误,因为脚本语言是如此多才多艺,一个人不能尽早预测特定上下文的有效性,例如编译语言) 如果这样做没有问题,那么你就有了一个包含你的定义的对象“三角形”。与执行 triangle = 2 的方式完全相同,您有一个包含值为 2 的 int 实例的对象。在 python 中,一切都是对象,具有方法和属性。 你总是可以检查一个对象的方法

    dir(triangle) 
    

    例如。 以 triangle 为 int 执行 dir(triangle),我们看到有一个 .real 方法和其他方法。 执行 dir(triangle) 你会看到你的 class 函数实现的方法。 (包含在 __underscores__ 中的方法是默认方法,创建时不需要您声明它们。如果您愿意,可以重载它们。

  • 来自 。 import x 表示它在“import”关键字之后导入模块,在父目录中搜索(您的文件当前正在执行的目录上方的一个目录,如果您在“main”中或正在导入的模块中,则有所不同)