我从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
答案 0 :(得分:14)
args
是PDB调试器命令。使用!args
显示实际变量。
一(RGS)
打印当前函数的参数列表。
和
[!]声明
在当前堆栈帧的上下文中执行(一行)语句。 除非语句的第一个单词类似于调试器命令,否则可以省略感叹号。
(强调我的)。
在args
输出中,您可以在第一行看到args
参数值。
就个人而言,我发现(a)rgs
命令有点无意义;它使用str()
而不是repr()
打印所有值;这使得具有相似__str__
输出值的对象之间的差异不可见(例如str
与unicode
,或BeautifulSoup元素与带有HTML的字符串等。)