我正在读一本用Python编写的算法书,而且我对Python还是个新手。在
我不明白这个例子:
class Bunch(dict):
def __init__(self, *args, **kwds):
super(Bunch, self).__init__(*args, **kwds)
self.__dict__ = self
x = Bunch(name="Jayne Cobb", position="Public Relations")
print x.name
一些问题:
谨致问候
*args
表示:收集此列表中没有名称的所有额外参数:分配}。在
a=1
和{
^{pr2}$**kwargs
为dict
kawrgs
分配所有额外的参数:分配}。在
a=1
和{代码}。这是初始化超类(docs for ^{} )的标准模式
super(Bunch, self).__init__(*args, **kwds)
读作:使用实例self
和参数*args, **kwds
调用Bunch
的方法{是的,
dict
是built-in data type for dictionaries。在您实际上是在扩展基
dict
class。这是Python中的一个本机类。在Python的早期版本中,您无法扩展本机类,但随着new-style classes的变化,情况发生了变化。在函数
super
lets you find是给定类的父类,使用与继承相同的顺序。在*args
用包含非命名参数的元组展开,而{http://docs.python.org/reference/compound_stmts.html#function-definitions。解释}。
*
和{http://docs.python.org/library/functions.html?highlight=super#super。解释super
http://docs.python.org/library/stdtypes.html#mapping-types-dict。解释dict。
相关问题 更多 >
编程相关推荐