2010-11-22 94 views
0
number = droid.readPhoneState()['result']['incomingNumber'] 

在这种语法中'result'和'incomingNumber'是什么 - 它们不是参数吗?python函数调用语法... result = foo()['abc']

它们与函数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') 
+0

你并不需要像你这样标记代码段的字典对象。只需缩进4个空格。 – 2010-11-22 14:42:45

回答

9

droid.readPhoneState()返回字典的字典。等效的代码:

outerDict = droid.readPhoneState() 
innerDict = outerDict['result'] 
number = innerDict['incomingNumber'] 
+0

+1为更少的单词:) – khachik 2010-11-22 14:43:02

+0

非常感谢, 这里的语法记录 – Tiwari 2010-11-22 14:47:17

2

resultincomingNumber是键字典或实现方法__getitem__一个类的实例。这意味着readPhoneState()返回一个字典对象,它应该有一个密钥result,对应的值是一个字典对象,它应该有一个密钥incomingNumber

0

据推测,readPhoneState()返回一个字典,其中的值也是字典。

使用此语法,您可以获取与关键字'result'相关联的readPhoneState()返回的字典,并向其请求键值为'incomingNumber'的值。

1

其解释是droid.readPhoneState()返回dict,其对应于密钥'result'的值是另一个dict

1

readPhoneState()是方法,它返回一个字典对象。

Dictionary对象包含属性result这也是包含属性incomingNumber