我知道在python 3.x中,我可以使用非ASCII標識符(PEP 3131)。Python的非ASCII標識符2.7
x1 = 2
x2 = 4
Δx = x2 - x1
print(Δx)
python 2.7中是否有這樣的功能?也許,有人將它移植到2.x分支?
我知道在python 3.x中,我可以使用非ASCII標識符(PEP 3131)。Python的非ASCII標識符2.7
x1 = 2
x2 = 4
Δx = x2 - x1
print(Δx)
python 2.7中是否有這樣的功能?也許,有人將它移植到2.x分支?
不,Python 2中沒有這樣的功能;名稱僅限於使用ASCII字母和數字。
參見參考手冊的Identifiers and Keywords部分:
標識符(也被稱爲名稱)由下列 詞法定義描述:
identifier ::= (letter|"_") (letter | digit | "_")* letter ::= lowercase | uppercase lowercase ::= "a"..."z" uppercase ::= "A"..."Z" digit ::= "0"..."9"
這是PEP 3131將膨脹Python 3的可能字符範圍。
在將這個移植到2.x分支方面是沒有什麼意義的;它仍然是一個小衆的「功能」,要求每個運行你的代碼的人都安裝一個專門打補丁和編譯的解釋器。
請注意,更改並不重要; Python 2標識符是字節字符串,而不是 unicode值。您必須在解釋器中找到處理標識符的所有位置的所有位置,並驗證它們是否可以處理非ASCII值或將這些值重新制作爲unicode字符串。這超出了編譯器!
另外,除非Python開發社區的思維模式發生巨大變化,否則不會有任何新功能被移植到Python 2.x中,所以即使這些都不是真的,它發生的機會將是零。 – abarnert
嗯,我的意思是,技術上這是你問什麼:
>>> x1 = 2
>>> x2 = 4
>>> locals()[u'Δx'] = x2 - x1
>>> print locals()[u'Δx']
2
爲什麼你甚至想這樣做呢?只需使用'dx'。 – arshajii
我沒有你的答案,但請不要這樣做...只是叫它delta_x –
@dx:這只是一個例子。在實際的形式表達式將是這樣的:Δδj=κ*Áj*Δȳ對我來說它會更清晰.. –