2014-10-16 17 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