学习python艰难的方式锻炼40帮助

nei*_*eil 2 python

嘿家伙,我无法理解这一点,当地图被真正引用到城市字典时,我得不到.或者最后一行,(城市,州)部分是什么?

谢谢.

cities = { 'CA': 'San Francisco', 'MI': 'Detroit', 'FL': 'Jacksonville'}

cities['NY'] = 'New York'
cities['OR'] = 'Portland'

def find_city(themap, state):
    if state in themap:
        return themap[state]
    else:
        return 'not found'

#ok pay attention!
cities['_find'] = find_city

while True:
    print 'State? (ENTER to quit)'
    state = raw_input('> ')

    if not state: break

    #this line is the most important ever! study!
    city_found = cities['_find'] (cities, state)
    print city_found
Run Code Online (Sandbox Code Playgroud)

nmi*_*els 9

cities['_find']确切地说find_city.所以cities['_find'](cities, state)是一样的find_city(cities, state).

我的第一个陈述的原因是这一行:

cities['_find'] = find_city
Run Code Online (Sandbox Code Playgroud)

这不会调用find_city,它将函数本身粘贴在字典中.Python函数只是列表和类实例之类的对象.如果不在它们后面添加括号,则可以将它们分配给变量.