【Python3】 ord () eeldatav string pikkusega 1, kuid int leitud

Python3 Ord Expected String Length 1



int

OK, kuna c on ord() Tüüp, kuid # codingstatemachine.py def next_state(self, c): # for each byte we get its class # if it is first byte, we also get byte length byteCls = self._mModel['classTable'][ord(c)] Nõutav on string 1 pikkusega. See selleks. Kus on c määratletud?

next_state()

Siin siin pole c lihtsalt funktsioon # utf8prober.py def feed(self, aBuf): for c in aBuf: codingState = self._mCodingSM.next_state(c) Vaatame veel.



int

Vaata seda? Python 2-s on aBuf string, seega c on string pikkusega 1. (Selle saame stringi läbimisel - kõik tähemärgid ükshaaval.) Kuna aBuf on nüüd baitide massiiv, siis saab c-st ord() Tüüp, mitte pikkusega string 1. Teisisõnu, pole vaja kutsuda int Funktsiooni, sest c on juba

 File 'C:homechardetchardetcodingstatemachine.py', line 43, in next_state byteCls = self._mModel['classTable'][ord(c)] TypeError: ord() expected string of length 1, but int found
Nüüd!