Python的模块调用给包的使用

  • 名字查找顺序
  • 模块的相对导入和绝对导入
  • 包的使用
  • 软件开放目录命名规范
  • 正则表达式(简单了解)

名字查找顺序

以后再给文件名或者叫模块名起名字的时候一定不能跟内置模块名冲突
1. 先从内存中查找
2. 再从内置模块中查找
3. 最后去环境变量sys.path中查找

"""如果找不到,那就去sys.path中查找"""
import sys
print(sys.path)

以后遇到模块找不到的情况:
	1. 把模块所在的路径添加到sys.path中
    	import sys
        sys.path.append(r'D:\Python27\day20\aaa\bbb')
    2. 使用from...import句式
    	from aaa.bbb.ccc import m1(路径+文件名)
        from aaa.bbb.ccc.m1 import f1(路径.文件+调用函数名)

        f1()
        m1.f1()

模块的相对导入和绝对导入

"""在导入模块的时候,模块的查找始终以执行文件所在的路径为准"""

绝对导入:
	它始终是以执行文件所在的sys.path路径为基准查找

相对导入:
	"""
		.(句点符)
		. 代表的是当前路径
		.. 代表的是上一级路径	
	"""
# 相对导入可以打破始终以执行文件及准的查找顺序
from .ccc import m2
from .ccc.ddd import m2

只要py文件中出现了相对导入语句(.开头的语句),那么,这个文件就不能当成执行文件了,只能被导入

包的使用

包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。

简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包。

__init__.py|(下面写)
from .ddd.m3 import f3

软件开放目录命名规范

软件开发目录规范就是跟项目中得文件夹起合适的名字的!

项目名:
    bin 
    	# 放启动文件的 run.py start.py manage.py...
    如果你的启动文件只有一个,也可以不要bin文件夹,可以把启动文件写在项目的跟下
    
    conf (config:配置) 
    	# 放项目的配置文件
        settings.py
        '''就是一些初始化的数据'''
    core # 核心的
    	# 写一些项目的核心逻辑
        src.py 
        	def login():
                pass
            def register():
                pass
    lib # library 库
    	# 这个里面一般写项目使用的公共代码
         common.py
            def outer():
                pass
            
   log
	  # 日志:就是记录一些在代码运行过程中发生的一些事情,可以是正确的,可以是异常的
    	log.log
        
   db
	 # database
      跟项目相关的数据存储都存在db、data
        
    api/
    	# 接口层
   # 当你自定义文件夹名字的时候,一定要是见名知意, 一定不能出现中文的
setup.py  # 安装模块使用的 python setup.py ...
|-- requirements.txt # 目前用不到---> 

		taobao
    		time
        	 os
             requests
             xml
             ...
        # 命令:  
        	reqeusts == 1.11.1
            xml = 1.1.1
     # 命令:       
|-- README
	# 就是项目的说明书	

正则表达式(简单了解)

import re
phone_number = input('please input your phone number : ')
if re.match('^(13|14|15|18)[0-9]{9}$',phone_number):
        print('是合法的手机号码')
else:
        print('不是合法的手机号码')
        
        
正则表达式:
	利用一些特殊的符号匹配出我们想要的数据

正则表达式它是一门独立的语言,跟Python、Java等语言没有关系的
所以,如果想在Python中使用正则表达式,需要借助于re模块,内置的
import re

"""我们只学习正则的基础,就学习一些简单的正则够我们开发使用就行了"""