非常需要帮助完成python程序

2024-09-27 17:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

addcomponent()方法的“Component”参数是Component类的一个实例。简而言之,组件有2个参数;“Component(self,name,methodCount)”正如您在我的代码中看到的,我将每个组件添加到一个列表中。在validCount()中我需要做的是返回methodCount所在组件的数量!=0。根据我目前的数据,我的validCount()一直返回4,我不知道为什么。我已经调试过它,但仍然看不到4的来源;特别是当我将它初始化为0时。你能指出我做错了什么吗?我尝试过对有0个methodCounts和没有0个methodCounts的组件进行计数,但是这些数字都没有正确返回。整个程序有三个类,但这里就是我遇到麻烦的一个。(如果需要,我可以发布完整的cod):

class Effort(Component):

    addedComponents = []
    componentCounter = 0
    validCounter = 0

    def __init__ (self):
        return None

    def addComponent(self, Component):
        try:
            if (self.addedComponents.count(Component) != 0):
                raise ValueError
            else:
                self.addedComponents.append(Component)
                self.componentCounter = self.componentCounter + 1
                return self.componentCounter 
        except ValueError:
            raise ValueError("Duplicate component")

    def count(self):
        return self.componentCounter


    def validCount(self):
        if (len(self.addedComponents) == 0):
            return self.validCounter
        else:
            for i in self.addedComponents:
                if (i.getMethodCount() == 0):
                    pass
                else:
                    self.validCounter = self.validCounter + 1
            return self.validCounter

Tags: self参数returnifdef组件elsecomponent
1条回答
网友
1楼 · 发布于 2024-09-27 17:40:21

一些评论。在

  1. 注释代码。尤其是当你有错误的时候,对于局外人来说,辨别代码应该做什么是很困难的。

  2. 将“Component”参数大写为addComponent是一种错误的形式。类名使用大写字母,参数名称使用小写字母。这段代码读起来像是在尝试将类类型添加到addedComponents,而不是类的实例。

  3. validCounter应该是efforce的类变量还是实例变量?如果它是一个实例变量,将它的初始化放在init中。如果它是类变量,请将其称为努力.有效计数器,不是自我验证计数器. 对于addedComponents和componentCounter也是一样的。

  4. validCount应该递增每次调用还是返回addedComponent的数量?假设是后者,则不需要实例变量。不管怎样,您可能希望在for循环之前将validCounter重新初始化为0。

相关问题 更多 >

    热门问题