Python 为什么我们不能将方法或类名定义为字符串?

Python 为什么我们不能将方法或类名定义为字符串?,python,python-3.x,Python,Python 3.x,为什么我们不能将方法或类名定义为字符串 我试图在方法名称中使用&在普通名称中,它抛出错误,因此我尝试在字符串中使用方法名称,如: def 'order_date_&_time'(self, obj): return obj.created_at 但它再次显示另一个错误(SyntaxError:invalid syntax) 那么为什么我不能将方法或类名定义为字符串呢 函数名需要遵循与标识符相同的语法。Python中的标识符遵循特定规则,该规则不允许标识符以符号开头,例如

为什么我们不能将方法或类名定义为字符串

我试图在方法名称中使用&在普通名称中,它抛出错误,因此我尝试在字符串中使用方法名称,如:

def 'order_date_&_time'(self, obj):
        return obj.created_at
但它再次显示另一个错误(SyntaxError:invalid syntax)

那么为什么我不能将方法或类名定义为字符串呢


函数名需要遵循与标识符相同的语法。Python中的标识符遵循特定规则,该规则不允许标识符以符号开头,例如
。可接受的标识符形式在相应的

不能这样做,因为为标识符定义的语法规则不允许这样做,就这么简单


标识符是可读的,这就是为什么不允许使用
&
等字符

python语法不是这样定义的

看一看这篇关于语法的讲座(在CS中),了解语法是如何定义的,以及为什么它必须始终受到尊重,尽管它允许相当多的灵活性

因为编译器需要的是标识符,而不是字符串文字。。。。你怎么称呼这种方法?像“订单”(1)?那么,如果字符串本身是可调用的呢?为什么要使用符号而不是普通的英语单词(作为标识符)<代码>&在Python中有特殊的含义(按位和),使用整词被认为是清晰的,因为语言规范这样说。由于我所知道的所有语言的标识符都有词法规则,我只是假设应该有一个很好的理由——我知道原因,源代码必须被解析,解析器需要标识符的词法定义。您可以尝试构建一种接受任何字符串作为其标识符的语言,但祝您好运,因为解析肯定会很有趣。。。