首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

python笔记20-获取当前运行函数名

前言 写完代码之后,一般为了方便查看日志,可以在日志输出中加入当前运行的函数名称或类和方法名称,以便于代码报错的时候能快速找到报错的是哪个函数或方法。 那么如何获取当前运行函数(或方法)的名称呢?...获取函数名称 1.在函数外部获取函数名称,用.name获取 ? 2.函数内部获取当前函数名称,用sys._getframe().f_code.co_name方法获取 ?...2.获取类里面方法名称,跟获取函数名称一样sys._getframe().f_code.co_name) ?...inspect模块 1.使用inspect模块动态获取当前运行的函数名(或方法名称) # coding:utf-8 import inspect def get__function_name():...'''获取正在运行函数(或方法)名称''' return inspect.stack()[1][3] def yoyo(): print("函数名称:%s"%get__function_name

2.3K10

利用Python生成Word邀请

背景 伴随着凯多被打败,草帽海贼团即将迎来新的挑战,现急需扩展队伍(其实就是山治想把大和叫上),为了方便后面邀请新的小伙伴也可以快速制作出邀请,船上的神秘人悄悄地的写了一个Python自动化脚本来实现了这一个功能...,并帮助山治生成好了给大和的邀请。...效果如下: 创建Python工程 我习惯使用conda来创建虚拟环境,搭建可以根据自己的喜好创建即可。 在项目的根目录下创建一个名叫Word的文件夹,用来保存我们用来操作Word的脚本。...并通过一下命令安装python-docx库 pip install python-docx 如果速度比较慢可以使用腾讯源来进行安装 pip install python-docx -i https://...{data['#受邀人#']}.docx") 结尾 今天简单带大家用了这个库实现了一个生成邀请的功能,具体这个库的用法我们后面慢慢和大家细说。

23010

python迭代器(函数名的应用,新版格

while循环模拟for循环机制 小结 可迭代对象与迭代器的对比 详细内容: 函数名的运用: 函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值...;但是作为函数名他也有特殊的功能就是加上()就会执行对应的函数,所以我们可以把函数名当做一个特殊的变量。...:python中一切皆对象。一个实实在在存在的值,对象。 ​ 可迭代?:更新迭代。重复的,循环的一个过程,更新迭代每次都有新的内容, ​ 可迭代对象-->可以进行循环更新的一个实实在在值。...迭代器是这样的对象:实现了无参数的__next__方法,返回序列中的下一个元素,如果没有元素了,那么抛出StopIteration异常.python中的迭代器还实现了__iter__方法,因此迭代器也可以迭代...出自《流畅的python》 可以判断是否是迭代器:'__iter__' and '__next__' 在不在dir(对象) 判断一个对象是否是迭代器: with open('文件1',encoding

44310

Applicative

Applicative 定律 Application 子是一种加强的子,在 Haskell 的 Control.Applicative 模块中定义了一个 Applicative 类型类: class...fmap f x applicative 子的用途很明确,就是为了取出第一个子值中的函数,应用到第二个子值的值上,上述定律基本可以保证只是做了这件事,当然其他还有一些定律,就不细说了,列在这里大家看看就好...至于的话,先考虑函数作为普通子的情况,我们知道子值是一个包涵上下文的值,当函数作为子值时,从这个上下文中取值的操作就是将一个参数传递给该函数,然后产生一个值,所以函数作为Functor类型类的实例时是这样的...接收一个函数和一个子值,取出子值中的值传递给函数,然后返回一个子值。...那也同理,它接收两个子值,返回一个子值,当函数作为子值时,要先分别取出 f 中的值(函数)和 g 中的值,分别将一个参数 x 传递给它们,再将 g x 作为参数传递给 f x(由于 Haskell

71110

【基于 JS 的函数式编程 - 4】子 | MayBe子 | Monad

错误处理也是一种技术,本节中我们会使用子(Functor),用一种纯函数的方式帮助我们处理错误。...概念 子 定义: 子是一个普通对象,它实现了map函数,在遍历每个对象值的时候生成一个新对象。即,子是一个实现了 map 契约的对象! 简单理解:子是一个持有值的容器。...Monad是一个含有chain方法的子 你可以通过添加一个chain方法(或者说是join方法)扩展MayBe子,使其成为一个Monad子。...那么,我们就可以知道 Monad 子的一大特点就是能够避免深层嵌套,只要提供下一运算所需要的的函数,就能将函数拆解成互相连接的多个步骤,自动进行下去,并且每次都是只返回一个单层的子。...这个子有一个 flatMap 方法,即降维的能力。

14720

编程(16)-泛状态-Functional State

初接触泛状态觉着很不习惯。...主要是在使用State数据类型时很难理解其中的原理,特别是泛状态变迁机制(state transition mechanism):怎么状态就起了变化,实在难以跟踪。...RNG简单描述了泛方式的状态变迁及支持状态变迁所需要的数据结构和操作函数款式。    ...再次聚焦一下我们设计State类型的目标:State类型不但可以使我们像设计其它类型一样封装一个较低阶类型元素并且提供一套状态变迁机制,而且状态变迁机制是泛式的,自然隐性的。...泛状态是一种隐形自动的变迁,那么如果我们需要打乱既定流程,手动设定或者临时读取状态时该怎么办呢?

861100

编程(17)-泛状态-State In Action

对OOP编程人员来说,泛状态State是一种全新的数据类型。我们在上节做了些介绍,在这节我们讨论一下State类型的应用:用一个具体的例子来示范如何使用State类型。..._)) => machine.copy(locked = true, candies = nCandy - 1) 8 } 9 } 这个transition函数采用了泛状态维护风格...对比起来,下面的例子就可以说是真正的泛编程风格了。同样针对以上的贩售机模拟逻辑要求,我们将用典型的泛风格来编程。...在以上这个例子里我们采用了泛编程风格:用类型匹配方式进行了函数组合,虽然说代码可能简单了,但清洁可能就说不上了。...需要用类型匹配(type line-up)来分析理解,也就是要再熟悉多点泛编程思考模式。

72980

编程(32)-泛IO:IO Monad

由于泛编程非常重视函数组合(function composition),任何带有副作用(side effect)的函数都无法实现函数组合,所以必须把包含外界影响(effectful)副作用不纯代码...IO Monad就是泛编程处理副作用代码的一种手段。...现在,有了这个IO类型,我们可以放心地用函数组合的泛编程方式围绕着这个IO类型来编写IO程序,因为我们知道通过这个IO类型我们把副作用的产生推延到IO程序之外的IO解译器里,而IO编程与解译器是两个各自独立的程序...泛模式的IO编程就是把IO功能表达和IO副作用产生分开设计:IO功能描述使用基于IO Monad的Monadic编程语言,充分利用函数组合进行。...在泛编程模式里变量是用类型参数代表的: 1 trait IO[+A] { self => 2 def run: A 3 def map[B](f: A => B): IO[B] = 4

2.4K70
领券