2013-11-01 8 views
0

Я не уверен, что это правильный способ задать вопрос, но здесь он идет.Как передать неявные параметры

У меня есть класс сказать

class T_shape(Shape): 
    def __init__(self, center): 
     coords = [Point(center.x - 1, center.y), 
        Point(center.x,  center.y), 
        Point(center.x + 1, center.y), 
        Point(center.x,  center.y + 1)] 
    Shape.__init__(self, coords, 'yellow') 
    self.center_block = self.blocks[1] 

Этот класс был закодирован кем-то другим, я просто хотел бы спросить, что было бы правильно передать параметры. В этом случае центр имеет кортеж вроде (3,4). Но когда я пытаюсь передать это прямо таким образом, он говорит, что объект «tuple» не имеет атрибута «x».

Любая помощь будет оценена по достоинству.

+6

могла бы пройти [collections.namedtuple] (http://docs.python.org/3/library/collections.html#collections.namedtuple) (вместо любой другой документации, которая указывает на то, что делать. ..) –

ответ

2

Я не уверен, что это за объект center, или конструктор T_shape? Но вы можете достичь с помощью namedtuple.

from collections import namedtuple 
center = namedtuple('center', ['x', 'y'], verbose=True) 
center = center(x=3,y=4) 
t_shape = T_Shape(center) 
+0

Спасибо, что решил проблему. – Strommer

Смежные вопросы