- 浏览: 119468 次
- 性别:
最近访客 更多访客>>
文章分类
最新评论
-
差沙:
应该有django的Model
metaclass in python (part 1) -
beyking:
哈哈,恭喜
老子毕业了 -
towjzhou:
晕死,这种符号能打出来吗?
新的 pep ! -
xlp223:
好,需要这样的例子。自己用只能是从文档中获取一些,高级的用法, ...
SQLAlchemy Examples -
xlp223:
sql是个基础,脱离它去谈orm,有如纸上谈兵。
强大的 sqlalchemy
阅读 PLY 的 lex.py 的时候,看到这么一段代码 (line:449):
你可以在这个 frame stack 中前后移动,这样你可以获得调用者的信息:比如 f_globals、f_locals、f_builtins、f_code 等,你还可以获得调用者的调用者的信息,你还可以获得 ... 。
而且获得了调用者的字节码( f_code )之后,你还可以直接把它再执行一遍!
另外,查看 sys.exc_info 的文档时候,看到有一个警告,大意是说 sys.exc_info() 返回的那个 traceback 对象( 返回的 tuple 中第三个),最好不要赋值给当前捕捉到异常的这个函数的局部变量,如果你不需要用到 traceback 对象的话可以这么干:
理由是将 traceback 对象赋值给当前函数的局部变量会产生引用循环,而这个东西是引用计数垃圾回收方式的软肋,python2.2 以前的版本它直接就会导致内存泄露了,虽然随后版本的gc能搞定引用循环问题,不过考虑到效率,最好还是不要创建引用循环了。
try:哈哈,这种用法还真是前所未见(也许是见识还不够吧)!自己抛出异常自己捕捉,然后就可以访问到 frame stack 了!那还不无法无天了啊,呵呵。
raise RuntimeError
except RuntimeError:
e,b,t = sys.exc_info()
f = t.tb_frame
f = f.f_back # Walk out to our calling function
ldict = f.f_globals # Grab its globals dictionary
你可以在这个 frame stack 中前后移动,这样你可以获得调用者的信息:比如 f_globals、f_locals、f_builtins、f_code 等,你还可以获得调用者的调用者的信息,你还可以获得 ... 。
而且获得了调用者的字节码( f_code )之后,你还可以直接把它再执行一遍!
import sys大家还有什么变态的想法,尽管留言哈 ^_^ .
count = 0
def get_caller():
global count
try:
raise RuntimeError
except RuntimeError:
e,b,t = sys.exc_info()
f = t.tb_frame
f = f.f_back
count += 1
print count
eval(f.f_code, f.f_globals, f.f_locals)
def caller():
get_caller()
if __name__=='__main__':
caller()
另外,查看 sys.exc_info 的文档时候,看到有一个警告,大意是说 sys.exc_info() 返回的那个 traceback 对象( 返回的 tuple 中第三个),最好不要赋值给当前捕捉到异常的这个函数的局部变量,如果你不需要用到 traceback 对象的话可以这么干:
exctype, value = sys.exc_info()[:2]如果你确实需要使用这个对象,那你最好用完后 delete 掉这个变量,或者在另外开一个函数来调用 sys.exc_info()。
理由是将 traceback 对象赋值给当前函数的局部变量会产生引用循环,而这个东西是引用计数垃圾回收方式的软肋,python2.2 以前的版本它直接就会导致内存泄露了,虽然随后版本的gc能搞定引用循环问题,不过考虑到效率,最好还是不要创建引用循环了。
发表评论
-
如何在醉酒的情况下编写正确的程序
2007-06-22 09:12 1316答案很简单:Test Driven。哈哈,这个(http:// ... -
Evolution of a Python programmer
2007-05-26 07:51 1391http://dis.4chan.org/read/prog/ ... -
Python and vim: Two great tastes that go great together
2007-05-26 08:29 1717Python and vim: Two great taste ... -
字典与动态语言
2007-03-19 10:18 1402字典(或者叫哈希表、关联数组..)与动态语言的渊源可谓极深。动 ... -
使用 python 模拟 ruby 的 open class
2007-01-27 11:42 1311老早就写了这些代码,但一直懒得为它写篇博客,我觉得我永远也无法 ... -
do it runtime
2007-01-20 11:19 2659第一次从静态语言到动态语言的人肯定在思维上需要 ... -
PLY: 一个以教学为目的的lex、yacc实现
2006-09-16 12:37 3873官方网站 想学或正在学编译原理的同学可不要错过了,要是上个学期 ... -
python is obvious !
2006-09-18 17:40 1370初识 python 的时候常常会被一些陌生的概念绊倒,而当熟悉 ... -
compatibility of IronPython
2006-09-19 03:58 1798IronPython 1.0 的发布,在邮件列表中引起了很多争 ... -
Be Pythonic
2006-10-19 03:05 1144Be PythonicWhat is PythonicPyth ... -
a python tutorial
2006-12-04 08:01 1500A Very Brief Introduction To Py ... -
metaclass in python (part 1)
2006-12-12 14:15 2692python 的东西虽然概念上容易理解 ,但是实际用起来却也不 ... -
metaclass in python (part 2)
2006-12-12 14:24 1821接着上一篇的讲。 现在我们知道了,metaclass 生 c ... -
python types and objects
2006-12-16 14:02 1350在探寻 metaclass 的过程 ... -
selfless python
2006-12-18 04:07 1104Eliminating self with Metaclass ... -
python virtual machines
2006-12-24 13:22 1502Jython,IronPython,PyPy。 ... -
理解 python 的 method 和 function 兼谈 descriptor
2007-01-01 07:34 4989总是看到有人对 python 中的 method 和 func ... -
写了个方便下载 tudou 网视频的小程序
2007-01-09 12:26 1785http://huangyilib.googlecode.co ... -
Build extensible application with egg
2007-01-17 02:49 1790在 python 社区中 egg 已经 ...
相关推荐
《PyPI官网下载:深入解析.pthr_db_caller-0.0.11.tar.gz》 在Python的世界中,PyPI(Python Package Index)是最重要的软件仓库,它为开发者提供了无数的开源库和模块,方便他们构建自己的项目。本文将详细解析...
是否厌倦了为每个Rails 项目在 Gemfile 中同时要求better_errors和binding_of_caller而使您的手指陷入僵局? 那么这颗宝石是给你的!安装把它放在你的 Gemfile 中并打包: gem 'best_errors'什么是 ? 它是 Rails ...
This is the Ready project caller Id based on the Atmel Chip 8051... PCB layout is also given in this file
gem 'pg_sql_caller' 然后执行: $ bundle install 或自己安装为: $ gem install pg_sql_caller 用法 从PgSqlCaller::Base创建子类并PgSqlCaller::Base定义model_class require 'pg_sql_caller' class ...
binding_of_caller, 在 MRI 1.9.2 中,检索方法调用方的绑定 binding_of_caller( C ) Mair ( banisterfiend ) 2012检索 MRI (> = 1.9.2 ) 和 RBX ( Rubinius )的方法调用方的绑定。binding_of_
dll_caller 一个windows dll调用hellper Windows 消息框示例 package main import ( "github.com/gogap/dll_caller" "fmt" ) func main (){ ShowMessageBox () } func ShowMessageBox () { var dll * dll_...
标题中的"Caller-Id-DTMF.rar_caller id_full"提到了电话的呼叫者ID(Caller ID)和双音多频(DTMF)技术。这是一个关于这两种通信技术的详细资料包。呼叫者ID允许接收方在电话响起时知道来电者的身份,而DTMF则是...
标题中的"abc.rar_ABC_caller id_cndmain.ocx_ocx控件_来电显示"揭示了这个压缩包的内容,主要是一个名为"abc"的软件或工具,它包含了一个用于来电显示功能的OCX(ActiveX Control)控件,具体为"cndmain.ocx"。...
标题中的"app_DTMF_decoder.rar_caller id_来电显示"揭示了这个压缩包文件包含一个应用程序,专门用于DTMF(双音多频)解码,并且与来电显示功能相关,特别是针对caller id的处理。DTMF是一种在电话通信中广泛使用的...
标题中的"CID.rar CID_PIC16F690_caller id_辨識_電話"表明这是一个关于使用PIC16F690微控制器实现来电显示(CID,Caller ID)功能的项目。PIC16F690是Microchip Technology公司生产的8位微控制器,常用于小型嵌入式...
pino-caller为包装这增加了每个日志消息的调用位置到日志输出。 这在使用大型代码库进行开发时很有用,以便找到调用pino的确切位置。 安装 对于Pino v4及以下版本,请使用v2行,可以使用@legacy标签安装该@legacy :...
旧版本版本的全志R16平台的tinav2.1的系统打开softAP 2017/9/14 17:25 版本:V1.0 1、原始编译: ...rootroot@cm-System-Product-Name:~$ cd /home/wwt/ ...rootroot@cm-System-Product-Name:/home/wwt$ tar zxvf...
在JavaScript的世界里,`get-caller`通常是指获取调用栈中上一层函数的信息,这在调试、日志记录或实现特定逻辑时非常有用。然而,根据提供的标题和描述,似乎在Node.js v0.12版本中,一个名为`get-caller`的功能或...
标题中的"DTMF_CallerID.rar_DTMF C.id_dtmf caller"表明这是一个与DTMF(双音多频)技术以及来电显示相关的压缩文件,主要用于解析和展示主叫方的电话号码。DTMF是一种广泛使用的电话信号传输方式,允许用户通过...
4. `origination_caller_id_number`: 主叫号码,必须是有效的电话号码,用于显示给被叫方。 在`originate`对象后面,通常会指定被叫号码,如`sofia/gateway/bjgw/135020*****`,其中`bjgw`代表北京的网关,`135020*...
ActiveRecord :: Commentator将caller_location (文件名,行号和方法名)添加为调用SQL语句SQL注释。 安装 将此行添加到您的应用程序的Gemfile中: gem 'activerecord-commentator' 然后执行: $ bundle 或将...
#ssf_DTS_caller ssf_DTS_caller 是一个用于从读取深度照明数据中调用 CNV 的包。 该包有许多依赖项,包括 DenseTrackSets 和 DTS 基因型文件。 它还包含 genotype_regions,一个用于获取一组区域的基因型的简单...
问题描述 做项目用到了MUI的scroll控件 故此我引入了mui.min.js 然而 猝不及防地报错了: 原创文章 236获赞 36访问量 201万+ 关注 私信 展开阅读全文 作者:Piconjo_Official
摘要:Delphi源码,其它类别,API 一个封装了安全API调用机制的Delphi类。这个类参考了Delphi的线程类中安全调用多线程管理API的代码,因此... 这个类可以进一步的实现,ApiCaller.pas中给出的只是一个简单的框架。