档案日期2010的50

2010年12月13日 - 2010年12月19日

最后更新于 .

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

  • 1.python中没办法直接取得当前的行号和函数名。这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解决方案。
  • 2.如果一个函数在不知道自己名字的情况下,怎么才能递归调用自己。这是我一个同事问我的,其实也是获取函数名,但是当时也是回答不出来。

但是今晚!所有的问题都有了答案。 一切还要从我用python的logging模块说起,logging中的format中是有如下选项的:

%(name)s            Name of the logger (logging channel)
%(levelno)s         Numeric logging level for the message (DEBUG, INFO,
                    WARNING, ERROR, CRITICAL)
%(levelname)s       Text logging level for the message ("DEBUG", "INFO",
                    "WARNING", "ERROR", "CRITICAL")
%(pathname)s        Full pathname ...

最后更新于 .

还是先说一下背景吧,之前有写过C,C++代码中调用python脚本,但也仅是停留在浅尝辄止的地步,这次由于在fuload中要实现调用python的脚本,所以继续深入了解了一下。 提前打好招呼,这篇文章有点长,但是信息量也比较大,如果感兴趣希望能耐心读下去。 另外,文章中的代码都可以直接到fuload项目下看到: http://code.google.com/p/fuload/source/browse/#svn/trunk/src/slave/py_module

先来看一下so的cpp文件:

#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <python2.7/Python.h>
using namespace std;

#define PYMODULE_NAME   "fl_module"
#define PYFUNC_INIT ...

每日归档

上周

2010年度第 49 周

下周

2010年度第 52 周

归档