简单实例:

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. Dart函数、类和运算符-处理信息

    编程语言虽然千差万别,但归根结底,它们的设计思想无非就是回答两个问题: 1.如何表示信息: 2.如何处理信息: 函数 函数是一段用来独立地完成某个功能的代码.函数是对象类型,它的类型叫做Functio ...

  2. js/jquery去掉空格,回车,换行

    Jquery:$("#accuracy").val($("#accuracy").val().replace(/\ +/g,""));//去 ...

  3. Mysql学习笔记整理之数据库优化

    数据库性能瓶颈的原因 数据库连接数 数据量大 硬件资源限制 数据性能优化方案 sql优化       2.缓存        3.建好索引    4.读写分离        5. 分库分表 慢日志查  ...

  4. 基于Docker搭建大数据集群(六)Hive搭建

    基于Docker搭建大数据集群(六)Hive搭建 前言 之前搭建的都是1.x版本,这次搭建的是hive3.1.2版本的..还是有一点细节不一样的 Hive现在解析引擎可以选择spark,我是用spar ...

  5. spring5 源码深度解析-----ApplicationContext容器refresh过程

    在之前的博文中我们一直以BeanFactory接口以及它的默认实现类XmlBeanFactory为例进行分析,但是Spring中还提供了另一个接口ApplicationContext,用于扩展Bean ...

  6. 判断java中最多的词组

    其中的难点,是空格,以及如果第一个是空格怎么办,虽然事后看着很简单,但是做的时候却十分的困难! static void Daunyu()throws IOException {     Word wo ...

  7. 从SpringMVC获取用户信息谈起

    Github地址:https://github.com/andyslin/spring-ext 编译.运行环境:JDK 8 + Maven 3 + IDEA + Lombok spring-boot: ...

  8. CentOS7下mongodb忘记密码后重置密码

    新装mongodb后,结果一段时间没有用,密码给忘记了,只能重置密码了. 步骤如下: 1.找到mongodb的配置文件 通过ps -ef|grep mongod找到mongodb的配置文件mongod ...

  9. 利用js种的正则删除html标签

    public static string NoHTML(string Htmlstring) { //删除脚本 Htmlstring = Regex.Replace(Htmlstring, @&quo ...

  10. 关于IDEA的Maven打jar包springboot项目问题,打成可执行jar包,IDEA创建的maven项目和spring initializr项目

    Spring Initializr创建的项目 源文件地址 https://github.com/TaoPanfeng/maven-package 项目的创建步骤 进行打包 clear package ...