简单实例:

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. 02 (H5*) Vue第二天

    目录: 1:全局过滤器的使用 2:局部过滤器 3:自定义键盘码 4:自定义指令 5:自定义私有指令 6:Vue生命周期. 7:网络请求 1:全局过滤器的使用 Vue.filter("msgF ...

  2. Tcloud 云测平台-使用介绍

    Tcloud使用介绍 前端github地址:https://github.com/bigbaser/Tcloud后端github地址:https://github.com/bigbaser/Tclou ...

  3. 初学Spring的感觉

    1.使用接口 不同的类实现同一接口后都会变成同一类型的类.   spring作业1的思路 lab1: 建立一个有一个输出方法的接口类|并建一个英语类和一个数学类实现该接口.   这两个实现类都重写了那 ...

  4. 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 ...

  5. [Pandas] 04 - Efficient I/O

    SQLITE3接口 调动 SQLITE3数据库 import sqlite3 as sq3 query = 'CREATE TABLE numbs (Date date, No1 real, No2 ...

  6. asp.net 开源工作流-流程属性-流程关键字段

    关键词:工作流快速开发平台  工作流流设计  业务流程管理 Java工作流引擎 asp.net 开源工作流  net开源工作流引擎 开源工作流系统 定义:业务关键字段也叫流程实例的摘要字段,他提取流程 ...

  7. 夯实Java基础系列5:Java文件和Java包结构

    目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...

  8. lvm创建逻辑卷技巧

    公司使用的服务器都是虚拟机,是虚拟机管理员通过模板创建的. 创建的所有逻辑卷都是使用的sda盘. 而我们在部署应用时需要和系统所在盘分离.(提高磁盘读写速度,避免系统盘被占满) 以前都是先创建新的逻辑 ...

  9. Django&,Flask&pyrthon原生sql语句 基本操作

    Django框架 ,Flask框架 ORM 以及pyrthon原生sql语句操作数据库 WHAT IS ORM? ORM( Object Relational Mapping) 对象关系映射 , 即通 ...

  10. 常用的HDFS操作

    首先,把Hadoop命令加入到PATH环境变量中,直接通过start-dfs.sh开启Hadoop,也可以直接通过hdfs命令访问HDFS中的内容,方便平时的操作. 配置PATH环境变量 vim  ~ ...