爲什麼我們無法將方法或類名定義爲字符串?爲什麼我們無法將方法或類名稱定義爲字符串?
我試圖在方法名稱中使用&,在正常的命名被扔的錯誤,所以我想在一個字符串使用方法名稱,比如爲:
def 'order_date_&_time'(self, obj):
return obj.created_at
但它再次展示了另一個錯誤( SyntaxError:無效的語法)。
So Why i can not define method or class name as a string ?
由於編譯器期望**標識符**,而不是**字符串文字** ....你會如何調用該方法?像''命令'(1)'?那麼如果一個字符串本身可以被調用呢? –
爲什麼你要使用&符號而不是普通的英文單詞(對於標識符)? '&'在Python中具有特殊含義(按位與),並且使用整個單詞被認爲更清晰 – UnholySheep
因爲語言規範說明了這一點。所有我知道的語言都有它們標識符的詞彙規則,我只是假設它應該有一個很好的理由 - 我知道原因,源代碼必須被解析,解析器需要標識符的詞法定義。你可以嘗試構建一種接受任何字符串作爲其標識符的語言,但運氣好,因爲解析肯定會*有趣* ... –