码迷,mamicode.com
首页 > 其他好文 > 详细

模块和包

时间:2019-01-24 23:02:09      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:web   class   重复   导入模块   方法   搜索路径   多个   因此   第三方模块   

模块(module):

  好处: 提高代码可维护性 + 编写代码不必从零开始

  模块有三种: python标准库、第三方模块、应用程序自定义模块

  另外,名使用模块还可以避免函数名和变量名冲突,相同名字的函数和变量完全可以分别存在不同的模块中。因此,我们再自己编写模块式,不必考虑名字会与其他模块冲突,但是也要注意,尽量不要与内置函数名字冲突。

 

 

搜索路径:sys.path

 

 

现在有 calculate.py文件,内有 add()、sub()方法

模块导入方法:

 

  1. 导入整个模块:import calculate,time (多个模块使用 , 分隔开)

                print(calculate.add(1, 2))

  1. 导入模块内的多个方法:from calculate import addsub

                        print(add(3, 2))

 

 

from calculate import *

此种情况遇到的问题是 calculate 中的 add 方法与本文件中的 add 方法有重复时,会按照顺序来决定使用哪一个。因此不建议使用此种方式

 

  1. from calculate import add as plus: 这样就不能再使用 add 方法,而是使用 plus 方法

from calculate import add as plus
print(plus(3, 3))

 

  1. 从包 (web) 中导入模块:
    1. 如果包和文件在同一级目录:  from web import logger  (不能 import web.logger
    2. web 和文件在同一目录,web下还有包 web2web2 下有文件logger

   from web.web2 import logger

  1. 如果想导入 web.web2 下的模块 logger 导入 mylogger 方法:

from web.web2.logger import mylogger

  1. 导入包: import web   # 这句话执行了包 web 下的 _init_ 模块

 

包:

模块使用来组织函数的,包是用来组织模块的;

包下面有 _init_ 文件

 

目录结构:

bin(入口):_init_.py bin.py

module(主逻辑)_init_.py main.py logger.py

conf(配置):

 

# 在被调用时,不会编译执行此段代码

if  __name__ == “__main__”:

 

序列化:

json

pickle

shelve

xml

标签、属性: <country name = ‘panama’>  </country>

 

模块和包

标签:web   class   重复   导入模块   方法   搜索路径   多个   因此   第三方模块   

原文地址:https://www.cnblogs.com/mlllily/p/10317143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!