functools模块中partial的使用
一.简介
functools.partial(func,* args,**关键字)
返回一个新的部分对象,当被调用时,其行为类似于使用位置参数args 和关键字参数关键字调用的func。如果为调用提供了更多参数,则将它们附加到args。如果提供了其他关键字参数,则它们会扩展和覆盖关键字。
简单说就是把一个函数,和该函数所需传的参数封装到一个class 'functools.partial'的类中,简化以后的调用方式
#官方实例
from functools import partial # 将一个二进制的字符串传承int数字类型
basetwo = partial(int, base=2)
basetwo.__doc__ = 'Convert base 2 string to an int.'
print(basetwo('')) #
print(basetwo('')) #
二.其他实例
# 获取百度的html内容
import requests def get_baidu(method, url):
response = requests.request(method=method, url=url)
return response.content res = get_baidu("get", "https://www.baidu.com")
print(res) # 将函数和参数封装到一个指定变量名中,下次执行直接调用加()
getBaidu = partial(get_baidu, "get", "https://www.baidu.com")
print(type(getBaidu))
res = getBaidu()
#定义一个加减乘除的类
class Calculate(object):
md=["add","minus","multiplication","division"]
def __init__(self,method,num1=0, num2=0):
self.num1 = num1
self.num2 = num2
if method in self.md:
func=getattr(Calculate,method)
self.result=func(self) def add(self):
return self.num1 + self.num2 def minus(self):
return self.num1 - self.num2 def multiplication(self):
return self.num1 * self.num2 def division(self):
return self.num1 / self.num2 add=partial(Calculate,"add")
minus=partial(Calculate,"minus")
multiplication=partial(Calculate,"multiplication")
division=partial(Calculate,"division")
#调用刚刚写好的类的py文件
from functool_learn import functool_employ res=functool_employ.add(3, 5)
print(res.result)
res=functool_employ.minus(3, 5)
print(res.result)
res=functool_employ.multiplication(3, 5)
print(res.result)
res=functool_employ.division(3, 5)
print(res.result)
functools模块中partial的使用的更多相关文章
- Python使用functools模块中的partial函数生成偏函数
所谓偏函数即是规定了固定参数的函数,在函数式编程中我们经常可以用到,这里我们就来看一下Python使用functools模块中的partial函数生成偏函数的方法 python 中提供一种用于对函数固 ...
- functools模块中的函数
Python自带的functools模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数.换言之,就是能使用该模块对可调用对象进行处理.functools模块函数概览functools.cm ...
- python的collections模块和functools模块
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...
- python 中的匿名函数lamda和functools模块
为什么 要把匿名函数和functools模块写在一起? 因为 lamda函数和functools模块都是对函数一种增强或者是简化. 匿名函数: 为了解决那些功能很简单的需求而设计一次性的需求函数 #& ...
- 类装饰器,元类,垃圾回收GC,内建属性、内建方法,集合,functools模块,常见模块
'''''''''类装饰器'''class Test(): def __init__(self,func): print('---初始化---') print('func name is %s'%fu ...
- 探究functools模块wraps装饰器的用途
<A Byte of Python>17.8节讲decorator的时候,用到了functools模块中的一个装饰器:wraps.因为之前没有接触过这个装饰器,所以特地研究了一下. 何谓“ ...
- Python标准库笔记(9) — functools模块
functools 作用于函数的函数 functools 模块提供用于调整或扩展函数和其他可调用对象的工具,而无需完全重写它们. 装饰器 partial 类是 functools 模块提供的主要工具, ...
- python中 functools模块 闭包的两个好朋友partial偏函数和wraps包裹
前一段时间学习了python当中的装饰器,主要利用了闭包的原理.后来呢,又见到了python当中的functools模块,里面有很多实用的功能.今天我想分享一下跟装饰器息息相关的两个函数partial ...
- python中的functools模块
functools模块可以作用于所有的可以被调用的对象,包括函数 定义了__call__方法的类等 1 functools.cmp_to_key(func) 将比较函数(接受两个参数,通过比较两个参数 ...
随机推荐
- Sublime Text3介绍和插件安装——基于Python开发
Subime编辑器是一款轻量级的代码编辑器,是收费的,但是可以无限期使用.官网下载地址:https://www.sublimetext.com. Sublime Text3支持语言开发种类多样,几乎可 ...
- su和sudo的区别
首先来说一下su 然后是sudo
- Python数据处理与计算——概述
Python是一种面向对象的,动态的程序设计语言,具有非常简洁而清晰的语法,适合于完成各种高层任务.它既可以用来快速开发程序脚本,也可以用来开发大规模的软件. 随着NumPy.SciPy.Matplo ...
- java----静态代理
静态代理没啥好说的,直接上代码 package com.yk.aop.staticproxy; import org.junit.jupiter.api.Test; //1.接口 public int ...
- maven+springMVC(一)
[目录]
- deepin linux学习笔记
目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 c ...
- SQLServer之创建提交读
事务提交读注意事项 语法:set transaction isolation level read committed. 数据库默认的是两个会话事务之间是提交读. READ COMMITTED指定语句 ...
- .net c#将数据库数据对象转换为实体值对象
using System; using System.Data; namespace Sunlib { public static class DataHelper { //将数据库数据对象转换为实体 ...
- git常用命令说明教程
git常用命令说明教程 git介绍 是一个分布式的,版本控制软件.每台使用git的电脑都是一个分版本库.svn是集中管理的. 安装git 一 git相关操作 1.官网下载最新版安装https://gi ...
- Linux基础学习:文件与目录管理
目录与路径 目录的相关操作 几个特殊的目录: . :表示当前目录 .. :表示上一层目录 - :表示前一个工作目录 ~ :表示当前用户所在的主文件夹 ~account :表示account用户所在的主 ...