我需要创建一个对象系统,其中依次包含对象,例如:
class A(object):
def __init__(self):
self.A = 'Message from class A'
class B(object):
def __init__(self):
self.B = A()
或者这样做
class B(object):
def __init__(self):
self.B = A()
class A(object):
def __init__(self):
self.A = 'Message from class A'
所以我不能这样用
>>> C = B()
>>> print C.B.A
# Message from class A
这两个最好的选择是什么,或者如果还有别的,请欢迎!你知道吗
编辑1当前代码
class Foam(object):
def __init__(self, rotor, path='OpenFoamCase'):
self.dirs = {}
self.path = path
self.rotor = rotor
self.rotorObj = Rotor(rotor)
# OpenFoam case directories
self.dirs['main'] = path if path.endswith('/') else path + '/'
self.dirs['system'] = path + '/system/'
self.dirs['constant'] = path + '/constant/'
self.dirs['geometry'] = path + '/geometry/'
self.dirs['polyMesh'] = path + '/constant/polyMesh/'
self.dirs['triSurface'] = path + '/constant/triSurface/'
self.__openFoamInit()
self.mesh = OpenFoamBlockMesh(self)
class OpenFoamBlockMesh(object):
def __init__(self, study):
self.airfoil_offset = 0.5
self.rotor_disk_length = [20, 20]
...
def box(self):
...
所以现在我把它当作:
study = Foam(rotor=rotor, path='OpenFoamCase_Tesis')
study.mesh.airfoil_offset = 0.02
study.mesh.rotor_disk_length = [2, 2.5]
study.mesh.box()
这取决于你的目的。如果
A
类只是B
的助手类,并且是一个简单的小类,那么可以使用第二个方法(内部类)。你知道吗如果类
A
可能用于其他类或是一个大类,建议使用第一种方法(简单组合)。你知道吗如果你能提供一个更好的例子来说明你在现实世界中遇到的问题,我们也许能为你提供更多帮助。你知道吗
相关问题 更多 >
编程相关推荐