Python函数调用语法... 结果 = foo() ['abc']

0 投票
5 回答
1439 浏览
提问于 2025-04-16 07:27
number = droid.readPhoneState()['result']['incomingNumber']
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')

在这个语法中,'result'和'incomingNumber'是什么?它们不是参数吗?

它们和函数 readPhoneState 有什么关系呢?

5 个回答

1

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

这个字典对象里面有一个属性 result,而这个 result 也是一个字典对象,它里面有一个属性 incomingNumber

2

resultincomingNumber 是一个字典的键,或者是一个实现了 __getitem__ 方法的类的实例。这意味着 readPhoneState() 返回的是一个字典对象,这个字典应该有一个键叫 result,而这个键对应的值又是一个字典对象,这个字典里应该有一个键叫 incomingNumber

9

droid.readPhoneState() 这个函数会返回一个字典,里面又包含了其他字典。可以用下面的代码来实现同样的功能:

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

撰写回答