类不打印任何内容

萨满·切德(Shamanth Chedde)

我正在创建一个可切换电灯开关的配电盘类。我已经弄清楚了如何编写代码,但是当我创建对象并打印它时,它一直打印无。我不确定是什么问题以及为什么它不显示return语句“以下开关已打开:”而不打印任何内容,即使没有开关在其上仍应打印上面的字符串。有人可以帮我找出为什么打印出None而不是我想要打印的字符串吗?

def SwitchBoard(LightSwitch):
    '''This class will create a switch board for the user to use with n
    number of switches that is entered by the user'''

    def __init__(self, num_switches):
        '''
        (SwitchBoard, int) -> NoneType
        Given a value by the user, the function will create a switch board
        '''
        # create an empty list to be the switchboard with the desired amount
        # of switches
        self._listsw = [] 
        # turn each switch to off
        for index in range(num_switches):
            self._listsw.append(0)


    def __str__(self):
        '''
        (SwitchBoard) -> str
        Returns in a string the switches on the switchboard that are on
        '''
        # create an empty string to store the on switches in
        result = ""
        for index in range(len(self._listsw)):
            if(self._listsw[index] == 1):
                result += str(index)
                result += " "
        return "The following switches are on: " + result

def which_switch(self):
    '''
    (SwitchBoard) -> list of int
    Given a switchboard, the function will check to see which switches are
    on and will return the following switches in order as a list on integers
    '''
    # create an empty list to store the on switches in
    on_switches = []
    # loop through the list to check each switch
    for index in range(len(self._listsw)):
        # check if the switch is on
        if(self._listsw[index] == 1):
            # if the switch is on, add it to the list
            on_switches.append(index)
    # return the list of on switches
    return on_switches


def flip(self, n):
    '''
    (SwitchBoard, int) -> NoneType
    Given a switch as an integer, the function will flip the state of the
    desired switch on the switchboard. If it is on, it will be turned off.
    If it is off, it will be turned on.
    '''
    for index in range(len(self._listsw)):
        # check if the switch is on
        if(self._listsw[n] == 1):
            # if it is on, turn the switch off
            self._listsw[n] = 0
        # if the switch is off
        elif(self._listsw[n] == 0):
            # turn the switch on
            self._listsw[n] = 1            


def flip_every(self, n):
    '''
    (SwitchBoard, int) -> NoneType
    Given an integer n, the function will flip the state of every nth
    integer. If the integer is on, it will be turned off. If the integer is
    off, it will be turned on.
    '''
    for index in range(0, len(self._listsw), n):
        # check if the switch is on
        if(self._listsw[index] == 1):
            # if it is on, turn the switch off
            self._listsw[index] = 0
        # if the switch is off
        elif(self._listsw[index] == 0):
            # turn the switch on
            self._listsw[index] = 1            


def reset(self):
    '''
    (SwitchBoard) -> NoneTypen
    When called, the function will reset the entire switchboad and all
    switches will be turned off.
    '''
    # go through the switchboard
    for index in range(len(self._listsw)):
        # and turn every switch off
        self._listsw[index] = 0
布赖恩普克

很简单的错误:您正在将您的类定义为一个函数。

代替:

def SwitchBoard(LightSwitch):

class SwitchBoard(LightSwitch):

而且你很好。就目前而言,SwitchBoard它被视为具有一个参数的函数,该参数不返回任何内容...因此None

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章