打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python:模块代码编写要点

Python:模块代码编写基础

(2012-12-27 19:36:38)
标签:

python

模块

高级属性

it

分类: python

1 创建模块:定义模块用文本编辑器,以py为后缀保存。文件命名需遵循python命名规则。

2 模块使用:import / from

import:将整个模块对象赋值给一个变量名

from:将一个或者多个变量名赋值给另外一个模块中同名的对象,或者说深拷贝。

from module import name1,name2

<==>

import module

name1 = module.name1

name2 = module.name2

del module

两个模块有同名属性时,必须用import模块

M.py

def func():

   .......

N.py

def func():

   .......

import M,N

M.func()

N.func()

3 属性名的点号运算:层级对象访问控制符

4 重载模块:reload函数会使已加载的模块代码重新载入并重新执行,模块中新的代码赋值语句会在适当的地方修改现有的模块对象。reload 是Python 中的内置函数,不是语句,参数reload的是已经存在的模块对象,而不是变量名。

5 模块包

除模块名以外,导入也可以指定目录路径,python代码的目录就称为包,此类导入称为包导入。

导入包 import dir1.dir2.mod

     from dir1.dir2.mod import x

__init__.py包文件包导入语句的路径内每个目录都必须有__init__.py这个文件,否则会导致包导入失败。负责包初始化,包首次读取时,会自动执行。

6 高级模块话题

在模块中隐藏数据,最小化from*的破坏。_x指不被赋值的变量名x,__all__=[a,b,c]指要复制出的变量名。

b 混合用法模式:__name__ 和 __main__

 如果程序以顶层程序文件执行,启动时,__name__会被设置为字符串__main__

 如果文件被导入,__name__就会改设成客户端所了解的模块名

 可做单元测试

c 修改模块搜索路径

 import sys

 sys.path

 sys.path.append('dir') 

d import as 扩展 import module as name 等价于

  import module

  name = module

  del module

e 相对导入语法

  from 语句可以使用.作为相对路径来用。

  位于模块A.B.C

  from .import      #import A.B.D

  from ..Fimport    # import A.F.G

  from .. importE     #import A.E

f 模块设计理念:总在python模块内编写代码,模块耦合降低,最大化模块粘合性,模块应避免修改其他模块变量。

g 通过变量名字符串导入模块

 modname = "string"

 exec "import"+modname

h reload不影响from导入,from还是使用最初的变量对象。reload没有传递性,如果reload一个模块,模块中导入另外的模块,另外的模块不会被reload。

来自:http://blog.sina.com.cn/s/blog_4ef2568301016lqv.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
这是我见过最完整的模块资料!Python有这样的资源,很快就入门!
Python 模块之 reload
python3
python模块以及导入出现ImportError: No module named 'xxx'问题
Python代码模块热更新机制实现(reload)
Python学习手册(第4版).2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服