#隐藏数据
----_x,把下划线放变量名前面,可以防止客户端使用from module import *语句导入模块名时,把其中的那些变量名复制出去。
----__all__,在模块顶层把变量名的字符串列表赋值给变量__all__,from module import *只能把__all__里的变量名复制出去。
#启用以后的语言特性
----from __future__ import featurename 可以激活将来版本出现的新功能
#混合用法模式
----每个文件都有一个__name__的内置属性,由python自动设置
当文件被导入时,__name__被设置为"__name__"
当文件以顶层程序执行时,__name__被设置为"__main__"
----主要使用__name__="__name__"或__name__="__main__"来判断文件是被执行还是被导入
#修改模块搜索路径
----路径文件sys.path是个列表,可以通过列表的方法对此进行修改
----sys.path修改只在程序中存在,程序结束后不会保留,原来的路径不变
#import语句和frome语句的as扩展
----import modulename as name 把变量名modulename的命名空间改为name,modulename不保留
----from modulename import attrname as name 把属性名attrname改为变量名name,attrname不保留
#元程序
待补充
#用名称字符串导入模块
----import 或from语句中的模块名是直接编写的变量名称,不能直接导入字符串
----使用exec函数,exec('import' + modname)
----使用__import__方法运行模块对象,modname="string" ;string=__import__(modname
#模块陷阱
----导入时,模块文件顶层的程序代码一旦运行,就会立即执行,因此,不能引用后面赋值变量
----模块内的函数,直到函数被调用才会运行,通常情况下,可以引用文件任意地方的变量
----from复制变量名,而不是连接
----from *会让变量语义模糊,不知道变量从哪里来
----reload不会影响from 导入
----递归形式的from导入无法工作