|
|
发表于 2018-5-8 10:20:31
|
显示全部楼层
#!/usr/bin/env python3
#Filename: cityHelper.py
class CityHelper:
def __init__(self):
self.city = {}
def __call__(self, pos):
return self.city[pos]
def add(self, pos, city):
self.city[pos] = city
➜ desktop python3
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from cityHelper import CityHelper
>>> c = CityHelper()
>>> c.add((1,2), '北京')
>>> c.add((3,4), '上海')
>>> c.add((5,6), '广州')
>>> c((3,4))
'上海'
=======================================
改进建议:1. 在__call__方法中加一个异常处理,以应对输入坐标不存在的情况;2. 使用元组拆包,或者变长参数(推荐变长参数)
def __call__(self, *args):
return self.city[args]
调用时直接:
>>> c(1,2)
'北京'
即可。 |
|