我是一个初出茅庐的Python程序员,我正在研究一本关于这个主题的书,这本书是针对傻瓜的一系列知识书。
无论如何,本书中的一个例子如下,我需要有人告诉我发生了什么。我理解脚本的离散部分正在做什么,但逻辑流程让我感到困惑(例如,在哪里创建了什么对象以及在什么地方调用什么对象。)
对于经验丰富的程序员来说,这对于成像来说非常简单,但现在这让我很难过。任何帮助将非常感激。该脚本位于下方,只是输出'Red, Green, Blue + Yellow, Purple, Cyan = Red, Green, Blue, Yellow, Purple, Cyan'
。
提前致谢。诉讼中的脚本:
class MyClass:
def __init__(self,*args):
self.Input = args
def __add__(self,Other):
Output = MyClass()
Output.Input = self.Input + Other.Input
return Output
def __str__(self):
Output = " "
for Item in self.Input:
Output += Item
Output += " "
return Output
Value1 = MyClass("Red", "Green", "Blue")
Value2 = MyClass("Yellow", "Purple", "Cyan")
Value3 = Values1 + Values2
print("{0}+{1}={2}".format(Value1,Value2,Value3))
答案 0 :(得分:1)
我通常使用pdb而不是更花哨的调试器,但这是一个品味问题。它是默认的python调试器,您可以运行它来从命令行逐步执行代码。
要在您的脚本中使用pdb,请在您要开始单步执行的位置导入它,我认为对于此脚本,最有趣的一点是添加():
def __add__(self,Other):
import pdb
pdb.set_trace()
Output = MyClass()
Output.Input = self.Input + Other.Input
return Output
现在,如果您运行脚本,执行将在您设置跟踪的位置暂停。您将看到一个CLI,您可以在其中逐步执行代码并打印出您感兴趣的任何信息。
> print(Output.input)
> s # for (s)tep
> print(Other.input)