考虑以下代码:
class AClass():
def defaultMethod(self):
return 1
def __init__(self, methodToUse = defaultMethod):
print (methodToUse(self))
if __name__== "__main__":
AClass()
在这种情况下,不能将defaultMethod移到\uUinit_UuMethod下面,如果我这样做,会导致“NameError:name'defaultMethod'未定义”
这意味着我需要在优init_uu或Python不知道它之前定义这个方法。这再一次意味着我不再把giu init_uu作为第一个方法,这让我想知道通常是将u init_uu方法放在类的末尾还是在类的开头。在
我觉得你做事有点特别。如果不是第一个方法,您仍然应该将
__init__
放高。可读性是关键,并且__init__
显示您期望的主实例字段。在这里有三种选择。我更喜欢第一种方法,因为它记录了默认方法,并且需要对代码进行最少的修改。最后一种方法可行,但对于任何需要维护代码的人来说,这可能会令人困惑。在
“我需要在init或Python不知道它之前定义这个方法”是什么意思?在
我通常会将uInit_Uu()放在其他实例方法之前,但放在类方法/属性/属性之后。在
__init__
通常放在类的开头,因为它们是实例化类时运行的第一件事。由于您的情况要求它存在于类的更底层,所以其他开发人员最好在类的注释中留下注释。在相关问题 更多 >
编程相关推荐