在模块中为命名空间初始化类

时间:2011-06-12 04:16:16

标签: python

有一个模块car.py

有引擎和轮胎,我希望它们(他们的方法和属性)可以作为

访问
car.engine.data
# and
car.tires.data

因此文件parts.py看起来像

class engineClass(object):
    def __init__(self):
        self.data = 'foo data 1'

class tiresClass(object):
    def __init__(self):
        self.data = 'foo data 2'

engine = engineClass()
tires = tiresClass()

现在import car之后,我可以按照自己的意愿访问它们 - car.engine.data

这项任务是否正确?

1 个答案:

答案 0 :(得分:3)

当然......我不太确定你在问什么...

你正在做的事情没有错,但你可以跳过在你展示的情况下初始化类。只是做:

class type1(object):
    data = 'foo 1'

class type2(object):
    data = 'foo 2'

在你正在做什么的背景下,这是否有意义,我不知道......

就此而言,你可以做到

class Container(object):
    pass

type1, type2 = Container(), Container()
type1.data = 'foo 1'
type2.data = 'foo 2'

或其他任何类似的事情...... type1type2代表什么?