0

我正在尝试使用从函数返回的值“str(check)” - get_reg_check_type 并在另一个函数 - get_status_type 中使用它。我怎样才能做到这一点?

#---- 获取寄存器检查类型 # 如果寄存器存在并且解锁,则返回“CHECK”;如果寄存器不存在或被锁定,则为“CHECK_NRF”

    def get_reg_check_type(self, addr, lock=definitions.LockTest.LOCK):
        check = "CHECK_NRF" # NOTE: if items (bits) are locked, check will stay set to CHECK_NRF
        for items in self.register_field_collection:
            for item in items:
                # Bit exists and is unlocked - return "CHECK"
                if (addr == item.register_address):
                    if ((lock == definitions.LockTest.LOCK) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW])) or \
                       ((lock == definitions.LockTest.A  ) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW, definitions.RegWriteLock.FRU])) or \
                       ((lock == definitions.LockTest.AB ) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW, definitions.RegWriteLock.FRU])) or \
                       ((lock == definitions.LockTest.ABC) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW, definitions.RegWriteLock.FRU, definitions.RegWriteLock.FEBU])):
                        check = "CHECK"
        return str(check)
        
    def get_status_type(self):
        if self.check = "CHECK_NRF"
            status_value = 8'h44
        else:
            status_value = 8'h40
        return status_value
4

1 回答 1

1

如果可以在同一个类中找到这些函数,则可以先调用get_reg_check_typethen get_status_type

def get_reg_check_type(self, addr, lock=definitions.LockTest.LOCK):
        check = "CHECK_NRF" # NOTE: if items (bits) are locked, check will stay set to CHECK_NRF
        for items in self.register_field_collection:
            for item in items:
                # Bit exists and is unlocked - return "CHECK"
                if (addr == item.register_address):
                    if ((lock == definitions.LockTest.LOCK) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW])) or \
                       ((lock == definitions.LockTest.A  ) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW, definitions.RegWriteLock.FRU])) or \
                       ((lock == definitions.LockTest.AB ) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW, definitions.RegWriteLock.FRU])) or \
                       ((lock == definitions.LockTest.ABC) and (item.register_write_lock in [definitions.RegWriteLock.NO, definitions.RegWriteLock.FRW, definitions.RegWriteLock.FRU, definitions.RegWriteLock.FEBU])):
                        check = "CHECK"
        self.checked = str(check) # set the value
        
    def get_status_type(self):
        print(self.checked) # get the value
        if self.check = "CHECK_NRF"
            status_value = 8'h44
        else:
            status_value = 8'h40
        return status_value
于 2020-07-30T23:51:09.280 回答