Синтаксис вызова функции Python ... result = foo () ['abc'] - PullRequest
0 голосов
/ 22 ноября 2010
number = droid.readPhoneState()['result']['incomingNumber']

Что такое «результат» и «входящий номер» в этом синтаксисе - не являются ли они параметрами?

Как они связаны с функцией readPhoneState?

import android

droid = android.Android()
droid.startTrackingPhoneState()

number = droid.readPhoneState()['result']['incomingNumber']

if number != None:
  droid.speak('Call from '+str(number))
else:
  droid.makeToast('No incoming call')

Ответы [ 5 ]

9 голосов
/ 22 ноября 2010

droid.readPhoneState() возвращает диктант. Эквивалентный код:

outerDict = droid.readPhoneState()
innerDict = outerDict['result']
number = innerDict['incomingNumber']
2 голосов
/ 22 ноября 2010

result и incomingNumber являются ключами к словарю или экземпляру класса, который реализует метод __getitem__. Это означает, что readPhoneState() возвращает объект словаря, который должен иметь ключ result, а соответствующее значение является объектом словаря, который должен иметь ключ incomingNumber.

1 голос
/ 22 ноября 2010

readPhoneState () - метод, который возвращает объект словаря.

Объект словаря содержит свойство result, которое также является объектом словаря, содержащим свойство incomingNumber

1 голос
/ 22 ноября 2010

интерпретация состоит в том, что droid.readPhoneState() возвращает dict, значение которого, соответствующее ключу 'result', является другим dict.

0 голосов
/ 22 ноября 2010

Предположительно, readPhoneState () возвращает словарь, значения которого, опять же, словари.

С этим синтаксисом вы получаете словарь, возвращаемый readPhoneState (), связанный с ключом «result» и запрашиваетзначение, ключ которого - «входящий».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...