Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命名Python类类似于保留关键字`class`_Python_Python 3.x_Class_Naming - Fatal编程技术网

命名Python类类似于保留关键字`class`

命名Python类类似于保留关键字`class`,python,python-3.x,class,naming,Python,Python 3.x,Class,Naming,在Python中,为一组学生命名一个类“class”是否合法,这会导致语法问题吗 注意:我知道: class Class: def __init__(self): pass my_class = Class() 不会抛出错误,但在扩展使用中会导致潜在问题吗 我可以想象的潜在问题是可能在代码上使用/运行的linter/parse的问题。我的假设是Python的内部不会有问题吗 我搜索过SO和Google,但由于明显的术语冲突,以及许多包含班级学生的教程,很难获得结果。

在Python中,为一组学生命名一个类“class”是否合法,这会导致语法问题吗

注意:我知道:

class Class:
    def __init__(self):
        pass

my_class = Class()
不会抛出错误,但在扩展使用中会导致潜在问题吗

我可以想象的潜在问题是可能在代码上使用/运行的linter/parse的问题。我的假设是Python的内部不会有问题吗

我搜索过SO和Google,但由于明显的术语冲突,以及许多包含
班级学生
的教程,很难获得结果。 我确实发现PEP8提到了参数和保留关键字之间的名称冲突,建议在有问题的参数后面加下划线。
我还看到了对明显的名称冲突更具风格的反对意见,虽然类方法将是类的方法,但它们不会是类方法(尽管我找不到PEP8禁令),但我承认这是观点,因此超出了SO的范围

总之-
是完全合法的,不应该给Python带来任何问题。因为Python是区分大小写的。因此,任何(合理的)linter或IDE在用作标识符时都不会有问题

按照惯例,任何以大写字母开头的东西通常都是一个类,因此,尽管它对一些人来说仍然可能令人困惑,但我认为对于有经验的Python程序员或任何使用具有语法突出显示的编辑器的人来说应该是好的。此外,如果token.lower()=='class':#parse class,则没有合理的linter会去做
,和
'c'!='C'
,所以我怀疑你会弄坏任何门楣或解析器。这很公平。虽然我认为这会很好,因为没有错误,但有人向我建议,这将是一个好问题,因为肯定会再次提出。不过,我相信有人能比我回答得更充分,不过如果几天内没有人回答我,我也会回答自己。我在这里也有同样的遭遇。我宁愿把我的回答留作评论,看看其他人有什么要说的,相对来说不受影响。我肯定有很多人会因为混淆而反对使用
,但我想看看是否还有其他观点需要说明。
是一个很好的、合法的、完全适合
学生群体(/set/list/etc.)的名称,不会引起语义问题。((唯一可能让用户感到模棱两可或困惑的方法是泛型或内部名称@classmethod,内部名称如
Class.\uu Class.\uu
,或者如果有人编写了
ClassFactory
,等等。我就是那个人。但无论如何,这些都不是对
Class
是一个好的合法名称的反对意见,事实确实如此。)