类方法中的“我的班级”惯例

时间:2013-08-28 13:20:41

标签: python coding-style naming-conventions

例如,我在一个类中有两个类方法,一个调用另一个。

class MyClass(object):

    @classmethod
    def foo(insert_name_here):
        print "foo."

    @classmethod
    def bar(insert_name_here):
        insert_name_here.foo()

c显然太短了。有趣的词汇如kindmyclasssuch进入我的脑海,但在一天结束时,一致性就是赢家。

正确的惯例是什么?或者更一般地说,找到这样的权威来源是什么?它有PEP吗?

3 个答案:

答案 0 :(得分:3)

惯例是调用类参数cls

请参阅PEP8

  

函数和方法参数

     

始终使用self作为实例方法的第一个参数   始终使用cls作为类方法的第一个参数。

答案 1 :(得分:2)

PEP8说:

  

始终使用cls作为类方法的第一个参数。

class MyClass(object):
    @classmethod
    def foo(cls):
        print "foo."

    @classmethod
    def bar(cls):
        cls.foo()

答案 2 :(得分:1)

PEP8 says cls

  

函数和方法参数

     

始终使用self作为实例方法的第一个参数。

     

始终使用cls作为类方法的第一个参数。

     

如果函数参数的名称与保留关键字冲突,则为   通常更好地附加单个尾随下划线而不是   使用缩写或拼写损坏。因此class_胜过。{1}}   clss。 (或许最好是通过使用同义词来避免这种冲突。)