我正在调试一个python脚本,我想看一个变量来进行更改(很像你可以在gdb中观看内存地址).有没有办法做到这一点?
我意识到这个问题与事件处理有关,我已经阅读了关于Python事件处理程序的调度程序,所以要么它没有回答我的问题,要么我完全错过了这些信息.
我想要在值发生变化时触发m()对象的方法:Av
例如(假设钱让人开心):
global_wealth = 0
class Person()
def __init__(self):
self.wealth = 0
global global_wealth
# here is where attribute should be
# bound to changes in 'global_wealth'
self.happiness = bind_to(global_wealth, how_happy)
def how_happy(self, global_wealth):
return self.wealth / global_wealth
Run Code Online (Sandbox Code Playgroud)
因此,每当global_wealth更改值时,类的所有实例Person都应相应地更改其happiness值.
注意:我必须编辑问题,因为第一个版本似乎暗示我需要getter和setter方法.对困惑感到抱歉.
pdb和winpdb似乎都缺少这个必要的(对我来说)功能.我看到WingIDE有这样的东西,但我更喜欢免费的解决方案,如果我必须支付,我宁愿支付比Wing更好的东西.
变量在我的程序中的某个未知X点改变了它的值。
X使用条件断点,当我的变量获得不同的值时,我可以使执行停止:
但这需要我在 15k 行程序的每一行中放置相同的断点,这是不切实际的。
问题:
如果代码中的任何位置更改了变量值,是否有办法使调试器停止?
是否可以用PyCharm"观察"变量?我希望看到变量在循环中运行时所具有的值.
还是有类似的东西console.log()?我知道断点(我不想破坏)print和pprint:).例如,单击打开列表或对象会很棒.
我有一本大字典,有些元素有时会以非法值结尾。我想找出非法值的来源。PyCharm应该不断监视我的词典的值,一旦其中任何一个值取了非法值,它就会中断并让我检查程序的状态。
我知道我可以通过为字典创建一个getter / setter而不是直接访问它,然后在适当的条件下破坏setter来做到这一点。
有没有办法修改我的代码吗?