简单实例:

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__函数的更多相关文章

  1. python中的__call__()函数

    __call__ 在Python中,函数其实是一个对象: >>> f = abs >>> f.__name__ 'abs' >>> f(-123) ...

  2. python --- Python中的callable 函数

    python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...

  3. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

  4. [转载]python中multiprocessing.pool函数介绍

    原文地址:http://blog.sina.com.cn/s/blog_5fa432b40101kwpi.html 作者:龙峰 摘自:http://hi.baidu.com/xjtukanif/blo ...

  5. Python 中的isinstance函数

    解释: Python 中的isinstance函数,isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是cla ...

  6. Python中的map()函数和reduce()函数的用法

    Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下   Py ...

  7. python中multiprocessing.pool函数介绍_正在拉磨_新浪博客

    python中multiprocessing.pool函数介绍_正在拉磨_新浪博客     python中multiprocessing.pool函数介绍    (2010-06-10 03:46:5 ...

  8. 举例详解Python中的split()函数的使用方法

    这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下   函数:sp ...

  9. python中的生成器函数是如何工作的?

    以下内容基于python3.4 1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函 ...

随机推荐

  1. 第二次实验报告:使用Packet Tracer分析应用层协议

    个人信息:      •  姓名:李微微       •  班级:计算1811       •  学号:201821121001 一.摘要 本文描述使用Packet Tracer,正确配置网络参数,抓 ...

  2. jmeter 查看结果树数据分析 优化

    1.点击查看结果树,配置 2.筛选功能项

  3. HttpClient远程接口调用-实名认证

    1.HttpClient远程接口调用 1)用户注册 注册按钮button提交表单时,要return false form表单 <!-- action="http://localhost ...

  4. Docker笔记(十一):Dockerfile详解与最佳实践

    Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...

  5. Linux初识之VMWare14中配置Centos7桥接网络环境

    1.查看当前初始环境如下:

  6. Docker下实战zabbix三部曲之三:自定义监控项

    通过上一章<Docker下实战zabbix三部曲之二:监控其他机器>的实战,我们了解了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连接上zabb ...

  7. Python学习-迭代器、生成器

    一.迭代器 1. 可迭代对象 我们知道字符串.列表.元组.字典.集合都可以使用for语句进行循环遍历,然后输出每一个元素,这些都是可迭代对象. 检查对象是否是可迭代对象可以用两种方式去判断: (1)使 ...

  8. Linux系统学习之Ln(软连接和硬链接)

    可简单理解为,软连接:创建的软连接文件是源文件的快捷方式,删除创建的软连接文件,源文件不受影响,连接消失. 硬链接:两个连体的文件,修改其中一个文件,另外一个文件也会随之更改:删除其中一个文件,另外一 ...

  9. Windows搭建MongoDB复制集

    ​上篇,我们已经知道了什么是MongoDB的复制集,不知道的可以查看上篇哦,传送门来了. 光说不练,假把式,咱来自己搭建一个复制集.先下载安装哦,不知道的查看上篇哦,https://blog.csdn ...

  10. vue2.0项目记住密码和用户名实例

    的今天突来兴致,试了一下将用户名和密码存在cookie和localStorage里如何实现:从代码难易程度来讲,果断选择了将用户名和密码存在localStorage里面.当然菜鸟上这么说的,楼下. 也 ...