目录
一、模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。
新建utils的Python包,里面会自带一个__init__.py的初始化文件
_init_.py
__all__=["mysql","redis","xx"]
mysql.py
url='http:mysql://localhost:3306/db/......' uname='root' pwd=123456 driver='com.jdbc.mysql.driver' class MysqlEntity(): def fn(self): print("~~~~~~~~~~~") pass def getConnection(): print("mysql 的连接方法被调用") pass if __name__ =='__main__': print("MYSQL~")
redis.py
pwd=123456 host='127.0.0.1' port=6379 class RedisEntity(): def fn(self): print("~~~~~~~~~~~") pass def getConnection(): print("Redis 的连接方法被调用") pass print("Redis ~")
test01.py
# from Python03 import util # from util import redis from util import * # 重命名 ---- 定义模块名字 # from util import mysql as l # 模块里的函数 mysql.getConnection() # 模块里的类 m=mysql.MysqlEntity() print(m) # 模块里的方法 m.fn() # 变量 print(mysql.uname)
二、标准模块
collections实现了许多特定容器,这些容器在某些情况下可以替代内置容器 dict, list, tuple, set, 原因在于,他们提供了在某个方面更加强大的功能。
collections模块
from collections import deque # [列表] /(元组)/{set集合/字典} # 基本模块collections d=deque() print(d) d.append([1,2,3]) print(d) print("=================") d.append({1,2,3}) print(d) print("=================") print(d.pop()) d.append((1,2,3)) print(d) print("=================") d.remove([1,2,3]) print(d)
singledispatch 单处理的泛型函数
class Stu(object): def wake_up(self): print('起床') class Police: def wake_up(self): print('起床') stu = Stu() police = Police() def wake_up(obj): if isinstance(obj, Stu): print('今天周末休息,让孩子们再睡一会') elif isinstance(obj, Police): print('警察很辛苦,又要起床了') obj.wake_up() else: print('不处理') wake_up(stu) wake_up(police) wake_up('一个字符串')
from functools import singledispatch
class Stu(object):
def wake_up(self):
print('起床')
class Police:
def wake_up(self):
print('起床')
stu = Stu()
police = Police()
@singledispatch
def wake_up(obj):
print('不处理')
@wake_up.register(Stu)
def wake_stu(obj):
print('今天周末休息,让孩子们再睡一会')
@wake_up.register(Police)
def wake_police(obj):
print('警察很辛苦,又要起床了')
obj.wake_up()
wake_up(stu)
wake_police(police)
wake_up('一个字符串')
wraps 装饰器修饰 python标准模块functools提供的wraps函数可以让被装饰器装饰以后的函数保留原有的函数信息,包括 函数的名称和函数的注释doc信息。
# map-reduce 归约
from functools import reduce
bills = [1, 2, 3, 4, 5, 6]
m = map(lambda a: a + 2, bills)
print(list(m))
print(bills)
r = reduce(lambda a, b: a + b, bills)
print(r)
def fn(a, b):
if isinstance(a, list):
if b > 3:
a.insert(0, b)
return a
r = reduce(lambda a, b: a + b, bills, 10)
print(r)
r = reduce(fn, bills, [10])
print(r)
三、异常处理
try: # print(1/0) # print("------------") flag =True if flag: raise Exception("未知异常") except ZeroDivisionError as r: print(r) except Exception as e: print(e) print("++++") else: print("正常执行则会触发!") finally: print("释放资源")
四、文件操作
# 文件操作 f = open('行尸走肉.txt', 'w+', encoding='utf-8') try: f.write('hello') print(f.read()) #模式为'w'会报错 # f.write('world') finally: # 关闭资源 # print(f.read()) # 模式为'w'会报错 f.close()
with open('a.txt', 'w', encoding='utf-8') as f:
f.write('hello world')