Python和科学计算认证群组  - 讨论区

标题:chaco绘图一问

2011年06月10日 星期五 11:05

用chaco绘图中 定义了一个HasTraits的类后

用__init__ 初始化

为什么在您书中有两种定义方式

def __init__(self, **traits):

http://hyry.dip.jp:8000/scipybook/default/file/08-chaco/chaco_simple_line.py

def __init__(self)

http://hyry.dip.jp/pydoc/chaco_intro.html#id2

**traits加不加有什么意义吗?

 

2011年06月10日 星期五 14:05

在Python的语法中,函数可以用“**参数名”接收所有的关键字参数。

HasTraits类可以通过关键字参数初始化Trait属性,因此从HasTraits类继承的类也可以用这个功能。

def __init__(self, **traits)中,用traits接收所有的关键字参数,然后再用super(LinePlot, self).__init__(**traits),将这些参数传递给HasTraits类的__init__。因此这种是比较标准的写法。

但是就这个例子来说,不要traits参数也可以,因为后面创建LinePlot对象时没有传递关键字参数给它。

2011年06月10日 星期五 14:57

哦~~明白了 多谢

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号