python3之模块的显要特性:属性

来源:互联网 发布:淘宝拍卖车怎么看到 编辑:程序博客网 时间:2024/06/06 07:21
python3之模块的显要特性:属性
----------
从宏观的角度来看,模块扮演了一个工具库的角色。从一般意义上来说,模块往往就是变量名的封装, 被认作是命名空间。在典型的应用中,导入者可以得到模块文件中在顶层所定义的所有变量名一个模块文件的变量名可以 通过两个python语句读取---import和from,以及reload调用

我们以myfile.py为例,myfile.py模块文件中,只有如下代码:

title = "The Meaning of Life"
它只包含了一行赋值语句,但是它已经足够讲明白基本的要点了。当文件导入时,它的代码运行并生成了模块 的属性。这个赋值语句创建了一个名为title的模块的属性。可以通过两种不同的办法从其他组件获得这个模块的title属性。第一种,你可以通过使用一个import语句将模块作为一个整体载入,并使用模块名后跟一个属性名来获取它,如例:
import myfileprint(myfile.title)

一般来说,这里的点号表达式代表object.attribute的语法,可以从任何的object中取出其任意的属性,并且这是python代码中的一个常用操作。

作为替代方案,可以通过这样的语句从模块文件中获得(实际上是复制)变更名:

from myfile import titleprint(title)
fromt和import很相似,只不过增加了对载入组件的变量名的额外的赋值。从技术上进,from复制了模块的属性,以便属性能够成为接收者的直接变量。因此,能够直接以title(一个变量)引用导入字符串而不是myfile.title(一个属性引用)。无论使用的是import还是from去执行导入操作,模块文件myfile.py的语句都会执行。如例:
%python>>>import threenamesdead parrot sketch>>>>>>threenames.b,threenames.c('parrot','sketch')>>>>>>from threenames import a,b,c>>>b,c('parrot','sketch')