python将变量添加到导入的模块

时间:2014-10-11 01:18:17

标签: python variables numpy

我没看到我之前在线上写的东西,所以我意外地在ipython中声明了一个变量:

np.zerosn=10

令人惊讶的是,这是允许的。所以我想也许是因为你可以在变量名中命名使用句点,但事实并非如此。所以我想知道实际发生了什么。这是为numpy模块添加一个新变量吗?

1 个答案:

答案 0 :(得分:4)

通常,(大多数/多个)python对象具有动态属性空间,您可以随时将任意内容粘贴到它们上。模块只是对象。它们的属性空间与它们的全局范围基本相同。

纯Python函数是另一个(可能是令人惊讶的)某些东西的例子,你可以在其上粘贴任意属性,尽管它们与函数的局部范围无关。

大多数“内置”类型(即在扩展模块中实现的类型,而不是在__builtins__模块中找到的类型)及其实例,没有动态属性空间。使用__slots__的纯python类型也不会。