Измените параметр другого кода во время выполнения

#python #function #import #chess

Вопрос:

Эй, я пытаюсь отредактировать шахматный код. В двигателе плата задана в виде массива.

 class GameState:

...
self.board = [['bR', 'bN', 'bB', 'bQ', 'bK', 'bB', 'bN', 'bR'],
['bp', 'bp', 'bp', 'bp', 'bp', 'bp', 'bp', 'bp'],
['--', '--', '--', 'wQ', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['--', '--', '--', '--', '--', '--', '--', '--'],
['wp', 'wp', 'wp', 'wp', 'wp', 'wp', 'wp', 'wp'],
['wR', 'wN', 'wB', 'wQ', 'wK', 'wB', 'wN', 'wR']]
...
 

в основном я импортирую эту доску с помощью import ChessEngine. Теперь я хочу изменить плату в двигателе с помощью последовательного ввода. Поэтому я написал этот код:

     def brett(self):
            ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
            ser.flush()
            while True:
                if ser.in_waiting > 0:
                    Brett = [ser.readline().decode('ascii').rstrip()]
                    return Brett
 

И я написал self.board = self.brett()
В моей основной импортированной функции с

 game_state = ChessEngine.GameState()
...
    while running:
        human_turn = (game_state.white_to_move and player_one) or (not game_state.white_to_move and player_two)
        game_state.brett()
... 
 

Каким-то образом я получаю такие ошибки, как: referenced before assignment error или 'NoneType' object is not subscriptable

Кто-нибудь знает, в чем Проблема? Может быть, я использую импорт ложно. Можно ли изменить параметр в файле Chessengine так, как это делаю я?

Комментарии:

1. Почему внутри метода есть главная защита brett ? Это необходимо? В случае, если это не __main__ файл, self.brett() вернет None

2. @cyttorak о нет, я забыл его вынуть, в этом нет необходимости. К сожалению, ошибка возникает и без этого