需要确保我正确解释了这个问题(我解决了这个问题,我需要一些赞成才能解除我的问题禁令)

时间:2021-04-23 15:55:56

标签: python class

为名为 CounterType 的类型定义一个类。这种类型的对象用于计数 事物,所以它记录了一个非负整数的计数。

一个。私有数据成员:count。

B.包括一个 mutator 函数,该函数将计数器设置为作为参数给出的计数。

c.包含成员函数以将计数增加一并减少计数 一个。

d。包括一个返回当前计数值的成员函数和一个输出 计数。

e.包括将计数设置为 0 的默认构造函数。

f.包括一个参数构造函数,将计数设置为给定参数。

确保没有成员函数允许计数器的值变为负数。

将您的类定义嵌入到测试程序中。

输出示例为:

a = CounterType(10)
a.display()
a.increase()
a.display()
a.setCounter(100)
a.display

将显示以下内容:

Counter: 10
Counter: 11
Counter: 100

我已经编写了代码,但我只是想确保它遵循问题的要求,以及是否有更简单的方法来编写此代码。

class CounterType:
  def __init__(self, counter=0):
    self.counter = counter
  def increase(self):
    self.counter += 1
  def decrease(self):
    if self.counter == 0:
      print("Error, counter cannot be negative")
  else:
    self.counter -= 1
  def setCounter(self, x):
    if x < 0:
      print("Error, counter cannot be negative")
    else:
      self.counter = x
  def setCount0(self):
    self.counter = 0
  def display(self):
    print("Counter:", self.counter)
  def getCounter(self):
    return self.counter

这是一个家庭作业,所以如果你能给一些提示会有所帮助

1 个答案:

答案 0 :(得分:1)

您忘记了“确保没有成员函数允许计数器的值变为负数。”

最简单的方法是在每个函数中添加一个 if 条件。更聪明的方法是添加检查 setCounter 函数并从所有其他函数中使用此函数。

class CounterType:

  def __init__(self, counter=0): # (e, f) counter = 0: default argument value so x = CounterType() works and has a counter of 0
    self.counter = 0  # (a)
    self.setCounter(counter)

  def increase(self): # (c)
    self.setCounter(self.counter + 1)

  def decrease(self): # (c)
    self.setCounter(self.counter - 1)

  def setCounter(self, x): # (b)
    if x < 0:
      print("Error, counter cannot be negative")
    else:
      self.counter = x

  def setCount0(self): # This is not needed
    self.counter = 0
  
  def display(self): # (d)
    print("Counter:", self.counter)

  def getCounter(self): # (d)
    return self.counter