Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

AttributeError: 'str' object has no attribute 'partition'

Aperta
#641 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
c, python
Ambito
embedded-iot

Direzione di ricerca

Inizia con l'impostazione collegata in inc/py/mpconfig.h intorno alla riga 709 e confronta la configurazione v1.0.0 con il comportamento di str.partition nel codice micro:bit segnalato. Riproduci l'AttributeError, quindi verifica che partition funzioni di nuovo senza rompere il workaround esistente con split o il comportamento correlato delle stringhe.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

microbit-support:20460

User reports code that previously worked using partition, no longer functions.


from microbit import *
import radio

radio.on()
started = False

def drive(onTime, offTime):
    global started
    stop(0)
    while True:
        incoming = radio.receive()
        if incoming is not None:
            # display.show(incoming)
            uart.write('Received: "' + incoming + '"\n')
            head, mid, tail = incoming.partition(' ')
            if head == 'buggy':
                cmd, mid, args = tail.partition(' ')
                # uart.write('cmd=' + cmd + ' mid=' + mid + 'args=' + args + '\n')
                if cmd == 'start':
                    started = True
                elif cmd == 'stop':
                    started = False
                    stop(0)
                elif cmd == 'direction' and started:
                    x, mid, y = args.partition(' ')
                    # uart.write('x=' + x + ' y=' + y + '\n')
                    xf = float(x)
                    yf = float(y)
                    if yf < 1:
                        if xf < 1:
                            leftforward(int(abs(yf-2)*onTime), offTime)
                        elif xf > 3:
                            rightforward(int(abs(yf-2)*onTime), offTime)
                        else:
                            forward(int(abs(yf-2)*onTime), offTime)
                    elif yf > 3:
                        if xf < 1:
                            leftbackward(int(abs(yf-2)*onTime), offTime)
                        elif xf > 3:
                            rightbackward(int(abs(yf-2)*onTime), offTime)
                        else:
                            backward(int(abs(yf-2)*onTime), offTime)
                    else:
                        stop(onTime)

It appears that this was deactivated in the port to v1.0.0

https://github.com/bbcmicrobit/micropython/blob/e10a5ffdbaf1cc40a82a665d79343c7b6b78d13b/inc/py/mpconfig.h#L709

User has found a workaround that uses a split instead.

Lingua principale
C
Stelle
647
Fork
290
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di bbcmicrobit/micropython

Tutte le issue di bbcmicrobit/micropython

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.