Python最佳实践:函数内部的类定义?
在这种情况下,函数返回的结构可能不需要在该函数之外的任何地方使用。然而,因为它不是一个简单的值,而是一个实际的对象,我想在我的函数中声明一个类,我可以实例化它然后返回 例如:Python最佳实践:函数内部的类定义?,python,python-2.7,Python,Python 2.7,在这种情况下,函数返回的结构可能不需要在该函数之外的任何地方使用。然而,因为它不是一个简单的值,而是一个实际的对象,我想在我的函数中声明一个类,我可以实例化它然后返回 例如: 我的问题是,这是一个好的做法还是一个坏的做法,因为这感觉很奇怪。同时,在我看来,因为封装的目的是阻止某人访问函数的实现,所以在这种情况下,它可能非常合适。如果该类不是程序中其他任何地方所需的,则程序的其余部分没有理由访问它。这是不好的,因为它会造成以下中断: 类型检查,使用isinstance(结果,FunkyClass)
我的问题是,这是一个好的做法还是一个坏的做法,因为这感觉很奇怪。同时,在我看来,因为封装的目的是阻止某人访问函数的实现,所以在这种情况下,它可能非常合适。如果该类不是程序中其他任何地方所需的,则程序的其余部分没有理由访问它。这是不好的,因为它会造成以下中断:
此外,多次调用
CreateSomeFunkyDataStructure
的结果甚至不是同一类型!(即,类型(f1)不是类型(f2)
)map(FunkyClass.getFunky[funcy1,funcy2])静态调用成员
pickle
ing这要求类在模块范围内可见,甚至嵌套的类也会导致阻塞
def CreateSomeFunkyDataStructure():
class FunkyClass:
def __init__(self):
self.var1 = 'Play that funky music white boy.'
def getFunky(self):
print 'Play that funky music right.'
x = FunkyClass()
return x
o = CreateSomeFunkyDataStructure()
print o.var1
o.getFunky()