2016-11-08 2 views
0

Я следующий прото и я пытаюсь присвоить значение вложенного поля сообщенияКак присвоить значение вложенного поле сообщения в протоколе буфер Python

message Foo { 
    required Bar bar = 1; 
} 
message Bar { 
    optional int32 i = 1; 
} 

Когда я пишу следующий код питона, Это дает ниже ошибки

foo = Foo() 
foo.bar.i = 1 

ошибка:

AttributeError: 'instancemethod' object has no attribute 'i'

Как справиться с этой ошибкой?

+0

'bar' - это метод. что происходит, когда вы его вызываете. Т.е. 'bar()' –

ответ

0

Чтобы сделать то, что вы хотите, в Python, вы должны определить метод bar в классе Foo. Что-то вроде этого сделают это:

class Foo: 
    i = 1 

    def bar(self): 
     return self.i 

if __name__ == '__main__': 
    foo = Foo() 
    foo.bar = 1 
    print(foo.bar) # this will print 1 
+0

def bar (self): уже существует. Однако я все еще сталкиваюсь с тем же ошибкой ... – Venkatesh

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