http://farmdev.com/src/secrets/framehack/index.html

sys._getframe([depth])

Return a frame object from the call stack
depth 表示调用栈的深度,默认为0,返回栈顶

def get_cur_info():
print sys._getframe().f_code.co_filename #当前文件名,可以通过__file__获得
print sys._getframe(0).f_code.co_name #当前函数名
print sys._getframe(1).f_code.co_name
#调用该函数的函数的名字,如果没有被调用,则返回<module>,貌似call stack的栈低
print sys._getframe().f_lineno #当前行号

例:

 import sys

 def one():
two() def two():
three() def three():
for num in range(3):
frame = sys._getframe(num)
show_frame(num, frame) def show_frame(num, frame):
print frame
print " frame = sys._getframe(%s)" % num
print " function = %s()" % frame.f_code.co_name
print " file/line = %s:%s" % (frame.f_code.co_filename, frame.f_lineno) one()

输出结果:

<frame object at 0x606c50>
frame = sys._getframe(0)
function = three()
file/line = stack.py:12
<frame object at 0x180be10>
frame = sys._getframe(1)
function = two()
file/line = stack.py:7
<frame object at 0x608d30>
frame = sys._getframe(2)
function = one()
file/line = stack.py:4

sys._getframe([depth]) -> frameobject

frameobject 属性

f_back -> frameobject

f_builtins -> dict key:python的内置函数名

f_code -> 代码对象

Python Frame的更多相关文章

  1. 在 Python 中使用 GDB 来调试 转载

    2013/11/01 | Comments 大约一年前,我接触了 Java 中的 Btrace 能够不停机查看线上 JVM 运行情况的特性让我艳羡不已. 另外还有强悍的 jStack 和 jConso ...

  2. Python之Pandas库学习(二):数据读写

    1. I/O API工具 读取函数 写入函数 read_csv to_csv read_excel to_excel read_hdf to_hdf read_sql to_sql read_json ...

  3. python pdb 转载:https://www.linuxidc.com/Linux/2017-11/148329.htm

    最近在为一个监控系统开发agent,需要支持Linux.FreeBSD及Windows等操作系统.复杂的线上环境,带来了一系列诡异的问题,尽管代码上线前在为数不少的测试机器验证过. Python程序吐 ...

  4. selenium python (八)定位frame中的对象

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip'#在测试过程中经常遇到frame嵌套的应用,加入页面上有A.B两个fram ...

  5. Python脚本控制的WebDriver 常用操作 <二十四> 定位frame中的元素

    测试用例场景 处理frame需要用到2个方法,分别是switch_to_frame(name_or_id_or_frame_element)和switch_to_default_content() 如 ...

  6. R vs Python:构建data.frame、读取csv与统计描述

    一.Python 数据框就是典型的关系型数据库的数据存储形式,每一行是一条记录,每一列是一个属性,最终构成表格的形式,这是数据科学家必须熟悉的最典型的数据结构. 1.构建数据框 import pand ...

  7. selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

    selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...

  8. python+selenium基础篇,切入切出frame

    1.首先制作一个html的文件,代码如下 <!DOCTYPE html> <html> <head> <title>Frame_test</tit ...

  9. 【路径规划】 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame (附python代码实例)

    参考与前言 2010年,论文 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame 地址:https ...

随机推荐

  1. eclipse + maven 环境配置

    软件152 余建强 第一步:准备以下软件并进行安装 1. jdk1.7或者以上为最佳: 官方下载地址:http://www.oracle.com/technetwork/java/javase/dow ...

  2. bootstrap 报错

    1. bootstrap table 加载出错,前台报错 Cannot read property 'colspan' of undefined { title : '设备类型', field : ' ...

  3. Microsoft.AspNet.Identity 的简单使用

    要完成一个简单的注册,登陆,至少需要实现Identity中的3个接口 IUser IUserStore<TUser> : IDisposable where TUser : IUser I ...

  4. asp.ne如何使用javascript去验证客户端信息,如果验证成功则送往服务器端处理,否则在客户端提示用户(不返回到服务器端处理)

    一.问题 在网站一般都有很多地方需要用户去填写一些信息,然后用户点击提交,将信息送往后台储存到数据库中.在这一个过程我以前做法直接在button的click事件中来判断用户输入的数据是否完整和合法,虽 ...

  5. springboot中使用druid和监控配置

    如果想要监控自己的项目的访问情况及查看配置信息,druid是一个很好的选择,可能你会问druid是什么?有什么用?优点是什么? Druid简介 Druid是阿里巴巴开源的数据库连接池,号称是Java语 ...

  6. 新电脑装不了win7?来试试我的方法!

    好久没写日记了,今天稍有时间来写个有关于硬件的技术贴.    前段时间换了个惠普暗影精灵二代,它的cpu代数如图所示:      用了几天系统自带win10,不同浏览器字体模糊的问题是个问题,故而想装 ...

  7. P2P文件上传

    采用uploadify上传  官网:http://www.uploadify.com/  (有H5版本和flash版本,H5收费,所以暂时用flash) uploadify的重要配置属性(http:/ ...

  8. CentOS7.4 + Hadoop2.9安装配置管理(分布式)

    1.  规划 1.1.  机器列表 NameNode SecondaryNameNode DataNodes 192.168.1.121 192.168.1.122 192.168.1.101 192 ...

  9. Tomcat、Apache、IIS这三种Web服务器来讲述3种搭建JSP运行环境的方法

    一.相关软件介绍 1. J2SDK:Java2的软件开发工具,是Java应用程序的基础.JSP是基于Java技术的,所以配置JSP环境之前必须要安装J2SDK. 2. Apache服务器:Apache ...

  10. 对象的数据属性(Object)

    value: 对象属性的默认值,默认值为undefined configurable: 能否使用delete.能否需改属性特性.或能否修改访问器属性.,false为不可重新定义,默认值为true en ...