我不确定这是否是你正在寻找的那种hackery ......

import inspect

class renameable(object):

def rename_me(self, new_name):

for stack_frame in inspect.stack()[1:]:

frame_object = stack_frame[0] # frame is the first object in the tuple

for (name, value) in frame_object.f_locals.iteritems():

if value is self:

old_name = name

matched_frame = frame_object

break

if matched_frame:

break

if matched_frame:

matched_frame.f_locals[new_name] = matched_frame.f_locals[old_name]

del matched_frame.f_locals[old_name]我怀疑这是一个完整的解决方案,但它确实允许您将值的一个绑定更改为名称。它更改绑定到最接近rename_me调用的值的名称。例如:

>>> import blah

>>> x = blah.renameable()

>>> x

>>> x.rename_me('y')

>>> x

Traceback (most recent call last):

File "", line 1, in

NameError: name 'x' is not defined

>>> y

>>>我不确定这是否比使用withhacks更好或更差,但它确实钻研了库中很少探索的模块。

python中with类的_在Python中使用`with`的不同类相关推荐

  1. 无法从套接字中获取更多数据_数据科学中应引起更多关注的一个组成部分

    无法从套接字中获取更多数据 介绍 (Introduction) Data science, machine learning, artificial intelligence, those terms ...

  2. python中exception类的_什么是Python异常?Python异常的种类

    程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)#语法错误示范一 if #语法错误示范二 def test: pass 2. ...

  3. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  4. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  5. python线上编辑问题_大型线上项目中动态语言诸多问题之二 -- 以 Python 语言为例...

    第一个问题:Mutable对象被误改 这个是在线上环境出现过的一个BUG 事后说起来很简单,服务端数据(放在dict里面的)被意外修改了,但查证的时候也花了许多时间,伪代码如下: def routin ...

  6. python中函数的调用_慢步python,编程中函数的概念,python中函数的声明和调用

    函数,曾经是一个很高大尚的概念.笔者是在高中数学里认识的函数,先是从y=2x+3 这条代数式开始的.y是因变量,x是自变量,y因为x取值的变化而变化. 再后来式子变成这样:f(x)=2x+3,f(x) ...

  7. python处理表格数据教程_用Python的pandas框架操作Excel文件中的数据教程

    引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要.作为额外的福利,我将会进行一些 ...

  8. 简述python中面向对象的概念_简述Python中的面向对象编程的概念

    面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机 ...

  9. python字符串能减吗_在python中减去两个字符串(Subtract two strings in python)

    在python中减去两个字符串(Subtract two strings in python) 我应该计算两个不同列表的元素之间的差异. 这是我的代码: import operator a = ['5 ...

最新文章

  1. svn客户端文件显示灰色的对号代表什么
  2. 网站功能页面构建有何技巧?
  3. 由系统调用想起的。。。
  4. mysql choose when_mybitis下choose..when. otherwise条件不起作用
  5. Python读取IRIS数据集并转换为PaddlePaddle中使用的reader
  6. 跨域异常与nginx的underscores_in_headers on
  7. ESXI NUMA node 1 has no memory..
  8. 华为一碰传多屏协同(非华为电脑版)最新版安装教程【华为电脑管家11】【SN码修复】【NFC卡贴修复】
  9. ip地址自动获取背后的机制(udhcpc)
  10. SystemTap笔记02 stap的编译运行
  11. 国际区号+手机号正则校验
  12. WebSphere水平集群集成IHS
  13. 20150609.C语言-尹成-专题视频课程
  14. 为什么oracle依旧是很多大公司数据库首选?
  15. 3款最好用的甘特图软件有哪些?
  16. Kali Linux更新5.2.9后 Vmware Workstation无法正常启动
  17. 崔希凡JavaWeb视频教程_day20jdbc分页-成品源码资料
  18. C 语言编程 — 发展历史概览
  19. 如何拿下BAT:我的学习路线(C/C++)
  20. android系统版本市场分布调查报告,安卓网:中国Android系统手机品牌分布情况

热门文章

  1. 重磅!Github 开放无数量限制的免费私有仓库!
  2. 死磕Java并发:J.U.C之并发工具类:Semaphore
  3. php mysql 分类_php+mysql实现无限分类实例详解
  4. 用java调用oracle存储过程总结
  5. win10子系统ubuntu root用户
  6. cuda 历史版本下载
  7. torch.ge,torch.gt,torch.le
  8. numpy的random模块
  9. 【7】青龙面板系列教程之任务消息定时推送
  10. Cissp-【第3章 安全工程】-2021-2-18(237页-248页)