2014-10-16 14 views
4

我想存储尺寸namedtuple(x, y)。我在整个项目中只需要这一次。命名为双元申报并在单一行中使用

我可以这样做:

Dimension = namedtuple('Dimension', ['x', 'y']) 
dim = Dimension(2, 3) 

,但是,因为我敢肯定,这是唯一的Dimension我需要在整个程序中,我在想,如果我可以让成一个班轮返回的这对象的属性,我可以访问像dim.xdim.y

+0

@jonrsharpe猜猜这真是一个非常愚蠢的问题!似乎工作,谢谢! – Juicy 2014-10-16 13:00:50

+0

@jonrsharpe如何将它发布为答案,以便OP可以接受并且人们可以upvote? :) – 2014-10-16 13:03:23

+0

@EduardLuca完成! – jonrsharpe 2014-10-16 13:06:27

回答

5

没有必要的临时名称Dimension

dim = namedtuple('Dimension', ['x', 'y'])(2, 3) 

或者,你可以使用type的三个参数的形式来创建一个新的类并创建它的一个实例:

dim = type('Dimension', (object,), {'x': 2, 'y': 3})() 

该对象将使用更多的内存,但与namedtuple不同,它将是可变的(这可能会或可能不会对您的用例有好处)。它还可以节省import