显而易见的是将give变成一个对象而不是一个函数。*任何对象都可以通过定义^{}方法来调用。在

当我们在做的时候,你的代码可以简化很多,所以让我们这样做吧。在class Giver(object):

def __init__(self):

self.last, self.a = object(), count()

def __call__(self, num):

if num != self.last:

self.a = count(1)

self.last = num

return self.a.next()

give = Giver()

所以:

^{pr2}$

这也允许你创建多个独立的给予者,每个人都有自己的,独立的当前状态,如果你有任何需要的话。在

如果您想用更多的状态来扩展它,那么状态只会进入实例变量中。例如,您可以将last和a替换为以前看到的值到计数器的字典映射:class Giver(object):

def __init__(self):

self.counters = defaultdict(count)

def __call__(self, num):

return next(self.counters[num])

现在:>>> give(5)

1

>>> give(5)

2

>>> give(6)

1

>>> give(5)

3

*我有点跳过了一步。您可以通过将变量和使用它们的所有东西(可能只是一个函数)放在函数或其他范围内来删除全局变量,因此它们最终作为自由变量出现在函数的闭包中。但在你的例子中,我认为这只会让你的代码看起来“更丑”(在同样的意义上你认为它是丑陋的)。但是请记住,对象和闭包在它们所能做的事情上实际上是等价的,但是它们的外观却不同,所以当其中一个看起来非常丑陋时,请尝试另一个。在

python怎样连续输入两个数字_在python中生成连续的数字,同时输入不变相关推荐

  1. python如何同时运行两个函数_关于python:使2个函数同时运行

    我试图让两个函数同时运行. 1 2 3 4 5 6 7 8def func1(): print 'Working' def func2(): print 'Working' func1() func2 ...

  2. python分段函数 保留两位小数_使用Python适合分段函数

    我试图使用Numpy来匹配具有绝对值的分段函数. 数学函数是 x < p [1]:y = 1 + p [0] abs((size + x - p [1])/ size - size / 2) x ...

  3. python中用plot绘制两条直线_在Matplotlib中绘制两条直线之间角度的最佳方法

    您可以使用^{}绘制相应角度度量值的弧. 绘制角弧: 定义一个函数,该函数可以接受2matplotlib.lines.Line2D个对象,计算角度并返回一个matplotlib.patches.Arc ...

  4. python:编写一个程序,接受用户输入的字符串,计算此字符串中的包含的数字和字母的个数。

    编写一个程序,接受用户输入的字符串,计算此字符串中的包含的数字和字母的个数.(提示,判断一个字符c是否为数字的方法是c.isdigit(),判断是否为字母的方法是c.isalpha())请详细写出解题 ...

  5. 2021-11-18 WinFrom面试题 Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的“确定”按钮,把输入的值显示到Form2的文本框中?

    Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的"确定"按钮,把输入的值显示到Form2的文本框中? 首先自定义一个事件参数Tex ...

  6. java编程用户输入两个数字_编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数据...,编写一个Java应用程序,要求从键盘输入一个数,判断该数是不...

    导航:网站首页 > 编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数据...,编写一个Java应用程序,要求从键盘输入一个数,判断该数是不 编写一个Java应用程序,要求从键盘输入 ...

  7. input只能输入两位小数_四十三、Python的输入与输出

    Python的输入与输出 一.输出格式美化 Python常见的有两种输出值的方式:表达式语句和print()函数.而第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout ...

  8. python字符串拼接数字_解决Python中字符串和数字拼接报错的方法

    解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...

  9. python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制

    七段数码管绘制: 七段数码管是由7段数码管拼接而成,每段有亮或不亮两种情况,改进的七段数码管还包括一个小数点位置. 七段数码管能形成2^7=128种状态,其中部分状态能够显示易于人们理解的数字或字母含 ...

  10. python查找数列中重复数字_在数组中找出重复的数字(异或法)

    购买本课程后,可以加51CTO学院李宁老师官方交流群:550369460注意,该群只允许购买李宁老师课程的学员进行技术交流,加群时需要提供在51CTO购买李宁老师课程的订单编号(任何一个课程的订单编号 ...

最新文章

  1. titanium开发教程-04-11其他属性和方法
  2. ulimit问题 关于nproc设置
  3. Hadoop安装及配置
  4. Windows安装mysql8.0
  5. java官网门户源码 SSM框架 自适应-响应式 freemarker 静态模版引擎
  6. JPA#Interfaces总结
  7. 重新设置Visual Studio 环境
  8. 最容易被你忽略的Mac神级功能!Mac访达里一切皆可标记
  9. 数据库学习入门(转)
  10. 三步完成自动抢票,又一款春节免费抢票神器推荐
  11. html转微信公众号,通过htmlparse动态抓取微信公众号的文章
  12. [系统安全] 十八.病毒攻防机理及WinRAR恶意劫持漏洞(bat病毒、自启动、定时关机、蓝屏攻击)
  13. SpringBoot application.properties读取属性配置文件中文显示为乱码问题的解决
  14. 怎样用Netfilter/IPtables控制P2P流量
  15. 如何利用新闻营销提高商品成交率?
  16. APP - IOS_Application 常用推荐
  17. HBuilder X右端预览点击无反应(解决方法)
  18. libuv介绍与编译
  19. php实用吗,php实用小窍门
  20. Python进阶并发基础--线程,全局解释器锁GIL由来,如何更好的利用Python线程,

热门文章

  1. 吉他谱——寂寞是因为思念谁
  2. 深入理解line-height
  3. 基于433MHz无线串口,多发一收解决方案
  4. Vivado常见问题集锦
  5. vue-cli 中stylus写样式莫名报错?
  6. Codeforces Round #346 (Div. 2)
  7. linux终端python自动提示
  8. [Android实例] 有关spinner 的item问题 谁能给解答下??
  9. 【Scala】使用Scala语言定义函数和函数使用(比较两个数的大小代码)
  10. python经典数据类型