python复制代码会被发现吗,我发现了一个记忆代码片段,我想知道它在复制。复制...
通常,复制一个对象应该创建一个精确的克隆:如果它有缓存的值,也应该复制它们。如果不这样做,这通常是对深度复制的速度优化,不会有明显的副作用。在
如果您正在制作某个内容的副本,并且希望清除该副本中的缓存值,则应显式清除该缓存。在
如果您确实希望对象的副本不复制缓存,那么定义__copy__或{}方法来控制复制。(请注意,这通常用于复制底层资源,如文件描述符和句柄)。在
这里有两个例子。在class memoized(object):
"""
Decorator that caches a function's return value each time it is called.
If called later with the same arguments, the cached value is returned, and
not re-evaluated.
"""
def __init__(self, func):
self.func = func
self.cache = {}
def __copy__(self):
"""
Don't copy the cache in a copy.
"""
return memoized(self.func)
def __deepcopy__(self, memo):
"""
Don't copy the cache in a deep copy.
"""
return memoized(self.func)
def __call__(self, *args):
try:
return self.cache[args]
except KeyError:
value = self.func(*args)
self.cache[args] = value
return value
except TypeError:
# uncachable for instance, passing a list as an argument.
# Better to not cache than to blow up entirely.
return self.func(*args)
def __repr__(self):
"""Return the function's docstring."""
return self.func.__doc__
def __get__(self, obj, objtype):
"""Support instance methods."""
return functools.partial(self.__call__, obj)
def clear_cache(self):
self.cache = {}
@memoized
def fibonacci(n):
"Return the nth fibonacci number."
if n in (0, 1):
return n
return fibonacci(n-1) + fibonacci(n-2)
fibonacci(12)
print fibonacci.cache
fibonacci.clear_cache()
print fibonacci.cache
fibonacci(12)
print fibonacci.cache
import copy
f = copy.deepcopy(fibonacci)
print f.cache
python复制代码会被发现吗,我发现了一个记忆代码片段,我想知道它在复制。复制...相关推荐
- sqlite 0转换为bit_Cisco Talos在SQLite中发现了一个远程代码执行漏洞
思科Talos的研究人员在SQLite中发现了一个use-after-free() 的漏洞,攻击者可利用该漏洞在受影响设备上远程执行代码. 攻击者可以通过向受影响的SQLite安装发送恶意SQL命令来 ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)...
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- 代码太多不要怕,分享一个阅读代码的神器
大家好,我是程序员小哈. 又到了知识分享时间,今天我给大家分享一个阅读代码的神器,如果对你有所帮助的话,还请文末点赞支持一下哈. 今天给大家介绍一个查看代码的编辑器软件:Source Insight, ...
- 刚刚,Python 3.10 正式发布了,我发现了一个可怕的功能..
就在( 2021年10月4日) Python 终于正式发布了 3.10 版本,看了下这个版本的一些特性,最受关注的应该就是 结构模式匹配 了吧?也就是大家所熟悉的 switch-case ,写错了不好 ...
- 【Python】刚刚,Python 3.10 正式发布了!我发现了一个可怕的功能...
就在2021年10月4日, Python 终于正式发布了 3.10 版本,看了下这个版本的一些特性,最受关注的应该就是 结构模式匹配 了吧?也就是大家所熟悉的switch-case,写错了不好意思,是 ...
- 刚刚,Python 3.10 正式发布了!我发现了一个可怕的功能...
" 阅读本文大概需要 8 分钟. " 就在前几天( 2021年10月4日) Python 终于正式发布了 3.10 版本,看了下这个版本的一些特性,最受关注的应该就是 结构模式匹配 ...
- 用 Python 分析了所有微信好友,发现了一个秘密...
点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 Illustrations by Evgenij Kungur 文/ Python攻城狮 最近研究了一下 ...
- python分析销量10w+的车厘子,发现了一个秘密
又到了吃车厘子的季节. 冬季,中国市面上的车厘子主要来自南半球的智利.新西兰和澳大利亚等地,其中中国更是智利最大的车厘子出口国,出国占比达百分之90以上.. 远隔重洋.长途跋涉而来的车厘子的消费价格里 ...
- 为了营造一个看代码舒服的氛围,写了获取王者荣耀所有高清皮肤的代码,现在写代码舒心了(中途发现了一个秘密)
自从发现了该海报,我沦陷了
最新文章
- Javascript闭包和闭包的几种写法及用途
- NGUI_Texture
- 职场经典小故事-II
- 想成为嵌入式程序员应知道的16个基本问题
- map任务和reduce任务个数如何计算
- linux系统多大分区,linux系统中fdisk最大能认到多大分区
- 奇怪的加拿大:一方面大力禁烟,另一方面放松大麻
- 一个很好用的桌面取色器和一个在线取色器
- sql server 2000 个人版怎么在win7下安装
- ali-oss配合element上传130M以上的文件,浏览器直接崩溃,有大神知道是什么情况么
- JDBC Connection [com.mysql.jdbc.Connection@2bbf4094] will not be managed by Spring 的一个可能错误
- 计算机智能未来发展趋势,在未来,人工智能的几个发展方向或趋势!
- 转发:【论文精读】Human Semantic Parsing for Person Re-identification
- C++问答1 语言基础
- tensorflow详细安装教程(Win10, Anaconda,Python3.9)
- 苹果x计算机怎么恢复,苹果手机怎样找回备忘录,电脑小白数据恢复全攻略
- POJ-3255 Roadblocks
- Android TV TIF源码阅读笔记
- 2022世界十大最佳医院介绍
- 前端三大构建工具 Webpack、Vite、Rollup 优劣势及原理分析