我正在编写一个在其__init__函数中使用某些函数的类,但我不确定在何处定义这些函数的最佳实践。我通常喜欢首先定义__init__,但如果我需要在__init__中使用a函数/方法,则需要首先定义它。我不想在类之外定义它,因为它在类外无用,但在__init__之前定义方法对我来说似乎很混乱。这方面的常规约定是什么?
发布于 2012-08-21 19:41:33
只需像其他方法一样将这些方法添加到您的类中
class Test(object):
def __init__(self):
self.hi()
def hi(self):
print "Hi!"一点问题都没有。
虽然在Python Style Guide IIRC中没有提到,但让__init__作为类中的第一个方法是惯例。
发布于 2012-08-21 19:49:21
通常的约定确实是将__init__放在其他方法之前。这样做的原因是函数只有在被调用时才会被计算。从Python docs
函数定义是一个可执行语句。它的执行将当前本地命名空间中的函数名称绑定到一个函数对象(函数的可执行代码的包装)。此函数对象包含对当前全局命名空间的引用,作为调用函数时要使用的全局命名空间。
函数定义不会执行函数体;只有在调用函数时才会执行。
发布于 2012-08-21 19:41:47
最好将__init__函数定义为第一个函数,并且可以在其中调用在__init__之后定义的函数。
class A:
def __init__(self):
print self.x()
def x(self):
return 10https://stackoverflow.com/questions/12053998
复制相似问题