在除錯升級到 Python 3 時,能夠覆寫 u'' 字串前綴以呼叫我自己的函式或替換為非 u 字串會很有用。
我已經嘗試過unichr = chr對我的除錯有用但沒有完成上述操作的方法。
module.uprefix = str是我正在尋找的解決方案型別。
uj5u.com熱心網友回復:
你基本上不能;正如其他人在評論中指出的那樣,u 前綴很早就被處理了,遠遠早于代碼內分配生效的任何事情。
您能做的最好的事情是使用ast.parse讀取磁盤上的模塊(不匯入它)并找到所有u''字串;它區分前綴。這將幫助您以 Python 感知的方式找到它們,比僅搜索u'and更可靠u",但差異可能不會很大,特別是如果您使用單詞邊界 (regex \bu['"]) 進行搜索。除非你在你的程式中有很多不是前綴的u'?u"
>>> ast.dump(ast.parse('"abc"', mode='eval'))
"Expression(body=Constant(value='abc', kind=None))"
>>> ast.dump(ast.parse('u"abc"', mode='eval'))
"Expression(body=Constant(value='abc', kind='u'))"
根據評論,你想做什么?我已經將很多代碼從 Python 2 遷移到 Python 3 并且從來不需要這個......可能有不同的方法可以實作相同的目標?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/428049.html
