python中的__call__函数
简单实例:
class TmpTest:
def __init__(self, x, y):
self.x = x
self.y = y def __call__(self, x, y):
self.x, self.y = x, y a = TmpTest(1, 2)
a(4, 5)
print(a.x, a.y)
4 5
实战中应用:
import requests
from common.tools import Tool
import time
from common.read_config import config
import os def wait(func):
# func(*args, **kw)可以使函数适配任意多的参数
def wrapper(*args, **kw):
time.sleep(3)
return func(*args, **kw) return wrapper class SendData:
"""审方发送数据的接口"""
def __init__(self):
self.tool = Tool()
self.change_data = {"{{ts}}": str(self.tool.get_ts(0, 0)), # 今天时间戳
"{{tf2}}": str(self.tool.get_ts(-1, -2)),
"{{tf1}}": str(self.tool.get_ts(-1, -1)),
"{{t}}": str(self.tool.get_ts(-1, 0)), # 昨天时间戳
"{{d}}": str(self.tool.get_date(-1, 0)), # 昨天时间
"{{tf3}}": str(self.tool.get_ts(-1, -3)),
"{{df4}}": str(self.tool.get_date(-1, -4)),
"{{tb1}}": str(self.tool.get_ts(-1, +1)),
"{{db1}}": str(self.tool.get_date(-1, +1)),
"{{tsb1}}": str(self.tool.get_ts(+1, 0)), # 明天时间戳
"{{dtb1}}": str(self.tool.get_date(+1, 0)), # 明天时间
"{{gp}}": str(self.tool.get_random(1, 10000)),
"{{cgp}}": str(self.tool.get_random(1, 100000)),
"{{ggp}}": str(self.tool.get_random(1, 1000000)),
"{{df6}}": str(self.tool.get_date(-1, -6)),
"{{df3}}": str(self.tool.get_date(-1, -3)),
"{{df2}}": str(self.tool.get_date(-1, -1)),
"{{df1}}": str(self.tool.get_date(-1, -1)),
"{{dt}}": str(self.tool.get_date(0, 0)), # 今天时间
"{{f5}}": str(self.tool.get_date(-5, 0)),
"{{f4}}": str(self.tool.get_date(-4, 0)),
"{{f3}}": str(self.tool.get_date(-3, 0)),
"{{f2}}": str(self.tool.get_date(-2, 0)),
"{{endtoday}}": str(self.tool.get_endtoday())
} @wait
def send(self, dir_name, xml_name, type):
"""
审方发数据的接口
:param dir_name:
:param xml_name:
:param type: 1:开具医嘱或处方 2:撤销医嘱或删除处方 3:医生双签医嘱或双签处方 4:删除处方的另外一个接口
:return:
"""
xml_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'data', dir_name, xml_name)
url = ''
if type == 1:
url = config.get('auditcenter', 'url') + '/api/v1/auditcenter'
elif type == 2:
url = config.get('auditcenter', 'url') + "/api/v1/cancelgroupdrug"
elif type == 3:
url = config.get('auditcenter', 'url') + "/api/v1/doublesign"
else:
url = config.get('auditcenter', 'url') + "/api/v1/cancelRecipe" with open(xml_path, encoding="utf-8") as fp:
body = fp.read()
ss = body
for k in self.change_data:
ss = ss.replace(k, self.change_data[k])
print(ss)
headers = {"Content-Type": "text/plain"}
return requests.post(url, data=ss.encode("utf-8"), headers=headers) def __call__(self, dir_name, xml_name,type):
return self.send(dir_name, xml_name,type) send = SendData()
send('ipt', '医嘱一', 1)
python中的__call__函数的更多相关文章
- python中的__call__()函数
__call__ 在Python中,函数其实是一个对象: >>> f = abs >>> f.__name__ 'abs' >>> f(-123) ...
- python --- Python中的callable 函数
python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...
- python中使用zip函数出现<zip object at 0x02A9E418>
在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...
- [转载]python中multiprocessing.pool函数介绍
原文地址:http://blog.sina.com.cn/s/blog_5fa432b40101kwpi.html 作者:龙峰 摘自:http://hi.baidu.com/xjtukanif/blo ...
- Python 中的isinstance函数
解释: Python 中的isinstance函数,isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是cla ...
- Python中的map()函数和reduce()函数的用法
Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下 Py ...
- python中multiprocessing.pool函数介绍_正在拉磨_新浪博客
python中multiprocessing.pool函数介绍_正在拉磨_新浪博客 python中multiprocessing.pool函数介绍 (2010-06-10 03:46:5 ...
- 举例详解Python中的split()函数的使用方法
这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下 函数:sp ...
- python中的生成器函数是如何工作的?
以下内容基于python3.4 1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函 ...
随机推荐
- 02 (H5*) Vue第二天
目录: 1:全局过滤器的使用 2:局部过滤器 3:自定义键盘码 4:自定义指令 5:自定义私有指令 6:Vue生命周期. 7:网络请求 1:全局过滤器的使用 Vue.filter("msgF ...
- Tcloud 云测平台-使用介绍
Tcloud使用介绍 前端github地址:https://github.com/bigbaser/Tcloud后端github地址:https://github.com/bigbaser/Tclou ...
- 初学Spring的感觉
1.使用接口 不同的类实现同一接口后都会变成同一类型的类. spring作业1的思路 lab1: 建立一个有一个输出方法的接口类|并建一个英语类和一个数学类实现该接口. 这两个实现类都重写了那 ...
- Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 59244544, 0) failed; error='Cannot allocate memory' (errno=12)
启动项目报错 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fa980000, 592445 ...
- [Pandas] 04 - Efficient I/O
SQLITE3接口 调动 SQLITE3数据库 import sqlite3 as sq3 query = 'CREATE TABLE numbs (Date date, No1 real, No2 ...
- asp.net 开源工作流-流程属性-流程关键字段
关键词:工作流快速开发平台 工作流流设计 业务流程管理 Java工作流引擎 asp.net 开源工作流 net开源工作流引擎 开源工作流系统 定义:业务关键字段也叫流程实例的摘要字段,他提取流程 ...
- 夯实Java基础系列5:Java文件和Java包结构
目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...
- lvm创建逻辑卷技巧
公司使用的服务器都是虚拟机,是虚拟机管理员通过模板创建的. 创建的所有逻辑卷都是使用的sda盘. 而我们在部署应用时需要和系统所在盘分离.(提高磁盘读写速度,避免系统盘被占满) 以前都是先创建新的逻辑 ...
- Django&,Flask&pyrthon原生sql语句 基本操作
Django框架 ,Flask框架 ORM 以及pyrthon原生sql语句操作数据库 WHAT IS ORM? ORM( Object Relational Mapping) 对象关系映射 , 即通 ...
- 常用的HDFS操作
首先,把Hadoop命令加入到PATH环境变量中,直接通过start-dfs.sh开启Hadoop,也可以直接通过hdfs命令访问HDFS中的内容,方便平时的操作. 配置PATH环境变量 vim ~ ...