【问题标题】:python class not instantiated - ways to catch/debug?python 类未实例化 - 捕获/调试的方法?
【发布时间】:2011-08-11 04:17:02
【问题描述】:

我在使用 python 模块 (webpy.session) 时遇到了一些问题,我已将问题缩小到未实例化的类。

有没有办法可以捕捉到这种情况并将原因/错误记录到日志文件中?

p.s(我尝试在 python 控制台中运行它,它在那里没有错误)

【问题讨论】:

  • 你能把代码贴在没有被实例化的地方吗? MyClass() 不返回该类的实例吗?
  • db = web.database(dbn='mysql', db='auth', user='root', pw='') store = web.session.DBStore(db, 'sessions' ) session = web.session.Session(app, store, initializer={}) - 它应该实例化会话类的最后一行。 P.s 它是一个 web.py 会话处理程序
  • 是不是很明显,当一个类不创建对象时,确实意味着Session构造函数或init抛出异常?
  • 我认为这样的东西(或者更简单的东西)是我正在寻找的东西 - code.activestate.com/recipes/…

标签: python error-handling


【解决方案1】:

我用pdb调试这种东西。

例如,要调试您发布的代码,我会添加:

db = web.database(dbn='mysql', db='auth', user='root', pw='')
store = web.session.DBStore(db, 'sessions')
import pdb; pdb.set_trace() # BREAK <<<< this line
session = web.session.Session(app, store, initializer={})

这会让我进入函数(使用s),看看返回了什么,等等。

额外提示,如果您使用 vim:map &lt;F8&gt; oimport pdb; pdb.set_trace() # BREAK&lt;esc&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2013-08-15
    • 2015-06-10
    相关资源
    最近更新 更多