#python #radio #grok
#python #Радио #грок
Вопрос:
from microbit import *
import radio
radio.on()
radio.config(channel=8)
routing_table = { 'Alice': 8, 'Bob': 10, 'Charlie': 15 }
spy = 60
def forward_message(msg):
source, destination, payload = msg.split(':')
radio.config(channel=10)
radio.send(msg)
def forward_to_spy(msg):
source, destination, payload = msg.split(':')
radio.config(channel=60)
radio.send(msg)
while True:
msg = radio.receive()
if msg:
msg = radio.receive()
forward_message(msg)
forward_to_spy(msg)
ack = radio.receive()
while ack is None:
ack = radio.receive()
forward_message(ack)
Всякий раз, когда я отправляю этот код, он выдает эту ошибку, не мог бы кто-нибудь мне помочь. Я пытаюсь получать сообщения, а затем отправлять их тому, кому они нужны, но также отправляю сообщение шпиону для прохождения курса в grok. Я застрял на этом целую вечность, поэтому, пожалуйста, кто-нибудь, пожалуйста, помогите.
Ответ №1:
Вы проверяете сообщение, но затем получаете другое сообщение в следующей строке и не проверяете, так ли это None
.
msg = radio.receive()
if msg:
msg = radio.receive()
forward_message(msg)
Таким образом, вы, вероятно, переходите None
к forward_message
и пытаетесь использовать split
on None
. None
не имеет split
метода, который вызывает эту ошибку.
Удалите второй msg = radio.receive()
, чтобы вы передавали сообщение только после проверки if msg
.
msg = radio.receive()
if msg:
forward_message(msg)