【问题标题】:Why do we sometimes need to import module1.module2 but sometimes not?为什么我们有时需要 import module1.module2 但有时不需要?
【发布时间】:2014-04-16 21:18:56
【问题描述】:

如果我们可以import module1,为什么还需要import module1.module2
示例:
为什么我们还需要import tkinter.messageboxtkinter.messagebox.askyesno(“blah text”),而我们也可以使用import os 并且仍然可以使用os.path.join(“/“, “blah”)

我经常在我的代码中使用import os,我在别人的代码中看到了import tkinter.messagebox

【问题讨论】:

  • 因为import os.path 只导入“路径”,import os 导入os 中的所有内容。与 from foo import barfrom foo import * 的区别相同

标签: python python-3.x import


【解决方案1】:

如果module1 本身导入module2,则您只能在没有显式导入的情况下使用module1.module2。例如,os 在内部导入其他几个路径处理模块之一(取决于操作系统)并将其称为path。这个path 只是os 模块中的一个变量,它允许您访问os.path 模块。

【讨论】:

    【解决方案2】:

    这是一个理由。通常当人们做一个

    import os
    

    他们通常使用属于os.pathos 的方法,例如os.path. abspath()os.getcwd()。所以导入os 更有意义。如果您确信您将只使用os.path 中的方法,那么您也可以使用import os.path,这非常好。

    同样,如果你确定你将只使用tkinter.messagebox 中的方法,你就可以

    import tkinter.messagebox
    

    【讨论】:

    • 谢谢!现在更有意义了!
    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 2020-05-13
    • 1970-01-01
    • 2022-01-07
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    相关资源
    最近更新 更多