Python学习之复杂程序组织

python学习笔记之复杂程序组织
1.关于模块导入
import 模块名
import 模块名 as 新名字#对导入的模块名重新命名
from 模块名 import 函数名
2.导入自己编写的模块
1)自己编写的模块跟当前的模块在同一目录下的时候,直接导入就好。
2)自己编写的模块跟当前的模块不在同一目录下的时候,需要利用sys库中的path.append函数将需要导入模块的路径添加进来,示例如下:
import sys
sys.path.append('D:\\python\\example')
import 模块名
3.__pycache__目录:将需要运行的程序在第一次调用的时候编译成字节的形式,以提高程序的启动速度。另一方面的作用是不想将源文件发布的时候,可以发布编译后的程序。被编译的程序也是可以直接运行的。对于不作为模块的程序,python不会在运行脚本后将其编译成字节码的形式,如果想将其编译,可以使用compile模块。示例如下:
import py_compile
pycompile.compile('name.py','name1.py')
4.具有独立运行的模块
python中的程序在运行的时候都有一个__name__属性,在程序中可以通过对该属性的判断,可以让程序在作为导入模块和独立运行时都可以正确的运行。当程序作为模块导入的时候,其__name__属性被设置为模块名;而当程序独立运行的时候,其__name__属性被设置为__main__.如果希望一个程序既可以作为导入模块又能够独立运行的话,可以加入对__name__属性的判断。示例如下:
print("导入的测试模块输出")
name='module_test'
def m_t_pr():
      print("module module_test's function:")


if __name__=='__main__':
      m_t_pr()
      print(name)
5.包:python中的包实际上就是包含函数和类的python程序。当应用程序和项目具有较多的模块时,如果把它们都放在同一个目录下不太合理。这个时候使用包来管理较多的功能模块,使用包的好处在于可以有效的避免名字冲突,便于系统的维护和管理。
包其实就是一个文件夹或者目录,但是其中必须包含一个名为‘__init__.py’的文件,该文件可以是空文件,仅用于表示该目录是一个包。此外,包还可以嵌套,即把子包放在某个包中。示例如下:
mywebprj/
     manage.py
urls.py
__init__.py
handle/
    __init__.py
index.py
info.py
temple/
   index.html
info.html
如果在程序中调用handle包中index模块中的hdl()函数的话,使用下面三种方式可以导入:
import handle.index
from handle import index
from handle.index import hdl()
实际上在第一次导入包中的任何部分,就会执行__init__.py中的代码,其中的变量和函数也会自动导入。因此__init__.py中可以包含可行性包的初始化工作的代码和设置__all__变量。对于from 中使用*通配符导入包中所有的名字时,需要在
__init__.py中设置__all__变量保证名字的正确导入。
当使用了包之后,包中模块可能也需要相互引用,以如下结构为例:
grnd\
    __init__.py
prnta
   __init__.py
suba.py
sub\
   __init__.py
sona.py
prntb
   __init__.py
subb.py
subc.py
包中的模块要引用同一目录下的另一模块,可以直接导入,例如subb.py要引用subc.py:
import subc
如果一个模块需要调用其同级别包中的另一个模块,就必须从父包中开始导入,例如subb.py要引用suba.py:
from grnd.prnta import suba
如果一个模块要调用其目录下的子包中的某个模块,可以使用相对导入的方式。如suba.py要调用sona.py中的代码,调用语句如下:
from .sub import sona
6.python中常用的库:math库,random库,日期与时间类的库有三个模块:calendar,datetime,time其用法如下:
time.time()#获取子初始时间到现在的秒数
datetime.datetime.now()#获取本地的日期/时间
datetime.datetime.utcnow()#获取当前的UTC日期/时间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值