有人能告诉我这个python 2.7脚本的程序流吗?

时间:2016-02-09 10:02:10

标签: python

我是一个初出茅庐的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))

1 个答案:

答案 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)