您的位置:首页 > 编程语言 > Python开发

python中的类的继承和dict对象------------类的基础(三)

2016-06-16 00:00 417 查看
摘要: python 类 基础 小白

[code=language-python]class _EnumDict(dict):#建立一个新的字典类EnumDict,继承内置的Python字典类dict
def __init__(self):
dict.__init__(self)#继承pyton字典类的方法和属性
self._member_names = [ ]#EnumDict增加一个新属性_member_names,并
#初始化赋值为空列表,这句有没有都不影响程序
def keysit(self):#定义对象方法
keyss = dict.keys(self)#将字典的键值赋予变量keyss
return list(filter(lambda k:k.isupper(),keyss))
#方法的返回值为键值为大写的键值
ed = _EnumDict()#创建_EnumDict类的实例对象
ed["RED"] = 1#对字典实例对象进行添加元素
ed["red"] = 2
print(ed,ed.keysit())#打印字典实例和字典实例键值
'''在上面的例子中 _EnumDict 重载同时调用了父类 dict 的一些方法,
上面的写法在语法上是没有错误的,
但是如果我们要改变 _EnumDict 的父类,不再是继承自 dict,
则必须手动修改所有方法中 dict.method(self) 的调用形式,
这样就不是一个好的实践方案了。
为了解决这一问题,Python 提供了一个内置函数 super():

在上面的例子中 _EnumDict 重载同时调用了父类 dict 的一些方法,上面的写法在语法上是没有错误的,但是如果我们要改变 _EnumDict 的父类,不再是继承自 dict,则必须手动修改所有方法中 dict.method(self) 的调用形式,这样就不是一个好的实践方案了。为了解决这一问题,Python 提供了一个内置函数 super():'''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 小白 基础