【问题标题】:Is "from matplotlib import pyplot as plt" == "import matplotlib.pyplot as plt"?是“从 matplotlib 导入 pyplot 作为 plt”==“导入 matplotlib.pyplot 作为 plt”吗?
【发布时间】:2015-05-31 13:37:07
【问题描述】:
from matplotlib import pyplot as plt

import matplotlib.pyplot as plt 

以上语句是否等效?哪种形式更易读/更好?

【问题讨论】:

    标签: python matplotlib python-import


    【解决方案1】:

    尽管它们是等价的,但我认为有一个很好的论据,即第二种形式 import matplotlib.pyplot as plt 在客观上更具可读性:

    1. 通常习惯使用import matplotlib.pyplot as plt 并在matplotlib 文档中建议(参见http://matplotlib.org/users/pyplot_tutorial.html 等...),因此大多数读者会更熟悉。

    2. import matplotlib.pyplot as plt 更短但同样清晰。

    3. import matplotlib.pyplot as plt 给不熟悉的读者一个提示,pyplot 是一个模块,而不是一个可能从第一种形式错误地假定的函数。

    【讨论】:

    • 嘿,我正在尝试掌握这些术语。 “pyplot”单独是模块,“matplotlib”也是模块吗?还是“matplotlib.pyplot”模块?谢谢!
    • matplotlib 是一个包,本质上是相关模块的集合。在最简单的情况下,包可以只是一个包含模块文件的目录,其中包含一个空的__init__.py 文件,告诉 python 该目录将被视为一个包。包A 中的模块B(即在文件结构A/B.py 中导入为import A.B
    • @EricAppelt 语法A.B 是否与对象的属性相同?
    【解决方案2】:

    它们的工作方式相同,所以你喜欢哪个取决于你,我个人不喜欢打字,所以我更喜欢第二个。

    from matplotlib import pyplot as plt
    
    import matplotlib.pyplot as plt1
    
    print(dir(plt) == dir(plt1))
    True
    

    【讨论】:

      【解决方案3】:

      是的,两者都是一样的。 这取决于你喜欢导入什么。

      我个人喜欢写作:

      from matplotlib import pyplot as plt
      

      因为它对我来说看起来更清晰干净。

      【讨论】:

        【解决方案4】:

        刚刚注意到一个案例让我觉得这两个语句的工作方式不同

        import matplotlib
        import matplotlib.pyplot as plt
        matplotlib.use('Qt5Agg')
        
        plt.plot(list(range(10)))
        

        上面的代码运行良好。 但是如果我用另一种方式写第二行,

        import matplotlib
        from matplotlib import pyplot as plt
        matplotlib.use('Qt5Agg')
        
        plt.plot(list(range(10)))
        

        上面的这个不起作用,进程在“matplotlib.use('Qt5Agg')”处停止。 进程以退出代码 -1073741571 (0xC00000FD) 结束

        这发生在 Spyder 控制台或 Pycharm 控制台等 IDE 中。感觉跟使用的后端有关,虽然我没有明确的线索。

        【讨论】:

          猜你喜欢
          • 2019-02-26
          • 1970-01-01
          • 2014-08-09
          • 2017-11-05
          • 2015-06-08
          • 2015-04-23
          • 2013-12-27
          • 2014-12-05
          • 1970-01-01
          相关资源
          最近更新 更多