python之模块使用

目录

一、模块

 二、标准模块

collections模块

 三、异常处理

四、文件操作


 

一、模块

 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')

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值