首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pdb的问题

pdb的问题
EN

Stack Overflow用户
提问于 2011-03-19 14:37:13
回答 2查看 699关注 0票数 1

在我尝试过的django shell上

代码语言:javascript
复制
from django import forms
class A(forms.Form):
    x = forms.CharField()
ao = A()
import pdb 
pdb.run('ao.as_table') 

但是在最后一条语句中,在第一次点击continue之后,我得到了一个堆栈跟踪,因为

代码语言:javascript
复制
/usr/lib/python2.6/pdb.pyc in run(statement, globals, locals)
   1218 
   1219 def run(statement, globals=None, locals=None):
-> 1220     Pdb().run(statement, globals, locals)
   1221 
   1222 def runeval(expression, globals=None, locals=None):

/usr/lib/python2.6/bdb.pyc in run(self, cmd, globals, locals)
    370             cmd = cmd+'\n'
    371         try:
--> 372             exec cmd in globals, locals
    373         except BdbQuit:
    374             pass

/usr/lib/pymodules/python2.6/IPython/FakeModule.pyc in <module>()

NameError: name 'ao' is not defined

出了什么问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 14:44:04

pdb.run(‘打印ao.as_table()',本地变量())

基本上传递locals()字典

票数 4
EN

Stack Overflow用户

发布于 2011-03-19 14:56:52

两件事。

  • 首先,将语句参数用作调用。也就是说,以suffix.
  • Second,为suffix.
  • Second,的"ao.as_table()",将关键字参数locals=locals()传递给函数。您也可以传递globals=globals()。不要使用locals()作为位置参数,因为它将被赋值给全局变量,因为run(statement[, globals[, locals]])将全局变量作为第一个参数。因此,如果第一个位置参数为locals(),则在运行代码时会将其误认为globals

它应该是

pdb.run('print ao.as_table()‘locals=locals())

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5360598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档