python 打印当前行号_python中获取当前位置所在的行号和函数名(转)

http://www.vimer.cn/2010/12/%E5%9C%A8python%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E4%BD%8D%E7%BD%AE%E6%89%80%E5%9C%A8%E7%9A%84%E8%A1%8C%E5%8F%B7%E5%92%8C%E5%87%BD%E6%95%B0%E5%90%8D.html

对于python,这几天一直有两个问题在困扰我:

1.python中没办法直接取得当前的行号和函数名。这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解决方案。

2.如果一个函数在不知道自己名字的情况下,怎么才能递归调用自己。这是我一个同事问我的,其实也是获取函数名,但是当时也是回答不出来。

但是今晚!所有的问题都有了答案。

一切还要从我用python的logging模块说起,logging中的format中是有如下选项的:

01

%(name)s            Name of the logger (logging channel)

02

%(levelno)s         Numeric logging levelfor the message (DEBUG, INFO,

03

WARNING, ERROR, CRITICAL)

04

%(levelname)s       Text logging levelfor the message ("DEBUG","INFO",

05

"WARNING","ERROR","CRITICAL")

06

%(pathname)s        Full pathname of the sourcefile where the logging

07

call was issued (if available)

08

%(filename)s        Filename portion of pathname

09

%(module)s          Module (name portion of filename)

10

%(lineno)d          Source line number where the logging call was issued

11

(if available)

12

%(funcName)s        Function name

13

%(created)f         Time when the LogRecord was created (time.time()

14

return value)

15

%(asctime)s         Textual time when the LogRecord was created

16

%(msecs)d           Millisecond portion of the creation time

17

%(relativeCreated)d Timein milliseconds when the LogRecord was created,

18

relative to the time the logging module was loaded

19

(typically at application startup time)

20

%(thread)d          ThreadID (if available)

21

%(threadName)s      Thread name (if available)

22

%(process)d         ProcessID (if available)

23

%(message)s         The

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值