Сравнение MSDN с этим
Для меня выбор был о том, кто из клиентов , и где они расположены?
Внутри компании Network и .NET-клиенты: используйте WCF с привязкой TCP (Fast communication than HTTP)
Вне сети компании и используйте разнообразные такие технологии, как PHP, Python и т. д.: используйте веб-API с REST
item
не словарь, а класс, поэтому он имеет различный синтаксис для доступа к членам. Доступ к id
таким образом:
item.id
Как и в случае ошибки, вы можете использовать только индекс в экземплярах класса, если класс определяет метод экземпляра __getitem__()
.
Поскольку id
является атрибутом экземпляра, вы должны использовать - item.id
вместо item['id']
.
Пример -
recent_item = next( (item for item in myClassList if item.id == id), None )
id
является атрибутом экземпляра MyClass, вам нужно получить к нему доступ как item.id
recent_item = next( (item for item in myClassList if item.id == id), None )
Если вы действительно хотели иметь доступ к вашим атрибутам с помощью inst["attr"]
и объяснять свою ошибку, вам нужно добавить к вам класс __getitem__
:
class MyClass(object):
def __init__(self, id, a, b, c):
self.myList = []
self.id = id
self.a = a
self.b = b
self.c = c
def addData(self, data):
self.myList.append(data)
def __getitem__(self, item):
return getattr(self, item)