Python 使用方法定义中的类属性作为参数?
我有以下代码:Python 使用方法定义中的类属性作为参数?,python,method-parameters,class-attribute,Python,Method Parameters,Class Attribute,我有以下代码: class Blah: ABC, DEF = range(2) def meth(self, arg=Blah.ABC): ..... Blah.ABC在方法内部或外部的任何地方起作用,唯一不起作用的地方是在方法定义中 有什么办法可以解决这个问题吗?不要使用类名,因为它还没有完成构造。但您可以直接访问类成员ABC,而无需将其放在类的前面: class Blah: ABC, DEF = range(2) def meth(self, arg=
class Blah:
ABC, DEF = range(2)
def meth(self, arg=Blah.ABC):
.....
Blah.ABC在方法内部或外部的任何地方起作用,唯一不起作用的地方是在方法定义中
有什么办法可以解决这个问题吗?不要使用类名,因为它还没有完成构造。但您可以直接访问类成员ABC,而无需将其放在类的前面:
class Blah:
ABC, DEF = range(2)
def meth(self, arg=ABC):
print arg
Blah().meth()
# it prints '0'
它还可以使用“新”样式的类定义,例如:
class Blah(object):
ABC, DEF = range(2)
当我真正进入python时,新样式的类已经成为常态,它们更像其他OO语言。。这就是我所用的。不确定坚持老办法有什么好处(如果有的话)。。但它似乎不受欢迎,所以我会说,除非有理由,我会使用新的风格。也许其他人可以对此发表评论。
类布拉赫:
在Python 3中定义了一个“唯一样式”类,您不再需要显式地从对象继承。