我的情况是,函数返回的结构可能不需要在该函数之外的任何地方使用。然而,由于它不是一个简单的值而是一个实际的对象,我想在我的函数中声明一个类,我可以实例化然后返回。
例如:
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()
Run Code Online (Sandbox Code Playgroud)
我的问题是这是一种好的做法还是不好的做法,因为这感觉很奇怪。同时在我看来,因为封装的目的是为了防止某人访问某个函数的实现,所以在这种情况下它可能是非常合适的。如果该类不是程序中其他任何地方都需要的东西,则程序的其余部分没有理由访问它。
这很糟糕,因为它会导致以下中断:
isinstance(result, FunkyClass)CreateSomeFunkyDataStructure多次调用的结果甚至不会是同一种类型!(即,type(f1) is not type(f2))map(FunkyClass.getFunky, [funcy1, funcy2])pickleing| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |