相同变量"args"的两个不同值

Ric*_*ard 4 python python-2.7 pdb

我从python脚本调用一个方法,其中一个变量为args.一旦我进入方法,当我试图看到变量args的值时,"print args"并且只是执行'args'会显示两个不同的值.任何人都可以让我知道这两个命令之间的区别.

我希望这两个命令显示相同的值.

(Pdb) print args
<lib.framework.testmanager.RunArgs object at 0xb26acac>

(Pdb) args
args = <lib.framework.testmanager.RunArgs object at 0xb26acac>
u = <upgradelib.UpgradeManager object at 0x946cf8c>
spec = {'excludeHosts': None, 'evacuateAllData': True, 'WaitTime': None, 'IssueType': 'Host Disconnect', 'performObjectUpgrade': True, 'downgradeFormat': False}
result = True
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 14

args是PDB调试器命令.使用!args显示实际变量.

请参见" 调试器命令"部分:

a(rgs)
打印当前函数的参数列表.

[!]语句
在当前堆栈帧的上下文中执行(一行)语句.除非语句的第一个单词类似于调试器命令,否则可以省略感叹号.

(强调我的).

args输出中,您可以args在第一行看到参数值.

就个人而言,我发现(a)rgs命令有点无意义; 它使用str()而不是打印所有值repr(); 这使得具有相似__str__输出值的对象之间的差异不可见(例如strvs. unicode,或BeautifulSoup元素与带有HTML的字符串等).