Python中的模块是否充当java对象

时间:2017-12-30 11:08:26

标签: python

我是python的新手,所以请不要让我爆炸。

import matplotlib.pyplot as plt
plt.xlabel('sepal length [cm]')

我知道导入适用于模块,我也知道我的模块是什么。 事实是,当调用 xlabel 方法时,相同的信息存储在 plt 中,因为它将充当对象。事实上,如果我再打电话

plt.show()

在x轴上显示“萼片长度[cm]”的图表。

所以当我导入一个模块时,它就像一个对象?是否有更准确的定义?

2 个答案:

答案 0 :(得分:1)

Python中的 是一个对象(1是一个对象,不像Java中的特殊基本类型,类是对象,函数是对象等)。模块只是module类型的对象(您永远不会直接实例化,它只是在导入模块时隐式创建),它们的属性是模块中全局定义的名称。

答案 1 :(得分:0)

如您所述,模块可以感觉像对象,因为函数可以修改模块中的状态。但是,有一些重要的区别。首先,您无法创建新实例。再次导入模块将像现有模块的另一个名称一样。例如,这将显示情节:

import matplotlib.pyplot as plt1
import matplotlib.pyplot as plt2
plt1.plot([1, 2, 1])
plt2.show()

因此,据我所知,每个模块总是只有一个状态。

另见this question