简单实例:

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. MOOC C++笔记(五):继承

    第五周:继承 继承和派生的基本概念 继承:在定义一个新的类B时,如果该类与某个个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也称子类). 派生类 ...

  2. MAC中Composer的使用

    安装composer 安装前需确保系统PHP版本在5.3以上,在终端中执行以下命令下载Composer可执行文件: curl -sS https://getcomposer.org/installer ...

  3. fslove - Matlab求解多元多次方程组

    fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...

  4. 2019年9月末周java面试总结

    不知不觉离职已经2个月了,这周开始投简历找工作,本来也做好了被打击的心理准备了,毕竟这么久没敲代码,也没怎么准备,基本上是属于裸面. 总结一下简历投递情况: 不知道是简历写得太敷衍,还是要求太高,总之 ...

  5. 使用 BeanDefinition 描述 Spring Bean

    什么是BeanDefinition 在Java中,一切皆对象.在JDK中使用java.lang.Class来描述类这个对象. 在Spring中,存在bean这样一个概念,那Spring又是怎么抽象be ...

  6. python使用代理ip

    python使用代理的方法有两种 1. #先创建代理ip对象 proxy_support = urllib.request.ProxyHandler({'https':'117.64.149.137: ...

  7. 并发编程的模型分类(转载于https://link.zhihu.com/?target=http%3A//www.54tianzhisheng.cn/2018/02/28/Java-Memory-Model/)强烈推荐!

    在并发编程需要处理的两个关键问题是:线程之间如何通信 和 线程之间如何同步. 通信 通信 是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存 和 消息传递. 在共享内 ...

  8. postgresql从库搭建--逻辑复制

    1 物理复制及逻辑复制对比 前文做了PostgreSQL物理复制的部署,其有如下主要优点 物理层面完全一致,是主要的复制方式,其类似于Oracle的DG 延迟低,事务执行过程中产生REDO recor ...

  9. centos7.x 部署主、从DNS服务器

    1.准备 例:两台192.168.219.146(主), 192.168.219.147(从), 域名www.panyangduola.com 主.从DNS服务器均需要安装bind.bind-chro ...

  10. day 21作业

    目录 一.定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放 二.使用abc模块定义一个phone抽象类 并编写一个具体的实现类 一.定义一个类:圆形,该类有半径,周长, ...