[PyKDE] Python/PyKDE newbie question

Albert Wagner alwagner at tcac.net
Tue Feb 1 14:02:04 GMT 2000


Hi, Boudewijn.  I'm working my way through it.
> 
> f(**args) means that within function f you have access to a
> _dictionary_ of arguments: try:
> 
> def f(**args):
>   for key, value in args:
>           print key, value
> 
> f(a="aaa", b="bbb", c="ccc")

I couldn't make this work. I changed the last line and got this:

>>> def f(**args):
...     for key, value in args:
...             print key, value
...
>>> f({1:"aaa", 2:"bbb", 3:"ccc"})
Traceback (innermost last):
  File "<stdin>", line 1, in ?
TypeError: too many arguments; expected 0, got 1  


> class MyListViewItem(QListViewItem):
> 
> <snip>
> 
>   def __init__(self, *args):
>     apply(QListViewItem.__init__,(self,)+args)
>                 self.setPixMap(Icon("mini/folder_open.xpm"))
> 
> With this construction, you can create instances from MyListViewItem
> like:
> 
>   item=MyListViewItem(parent, "aaa")
> 
> or
> 
>   item=MyListViewItem(parent, sibling, "aaa", "bbb")
> 
I think I understand this. In the first instance __init__ receives: 
self, parent, "aaa" 
and in the second instance __init__ receives:
self, parent, "aaa", "bbb".  Is that correct?  
Now,  what are "parent" and "sibling"?  I am guessing that if the call
to the class MyListViewItem is from a container class that the call
would look something like this:
	item=MyListViewItem(self, "aaa")
in which case __init__ receives:
	self, parent, "aaa"
where "parent" of the MyListViewItem instance is the container class. 
Is this correct?

I thank you very much for your explanation.  That took a considerable
amount of time; almost a mini-tutorial.

-- 
"Mutual cooperation can emerge in a world of egoists without central
control, by starting with a cluster of individuals who rely on
reciprocity"   --Robert Axelrod





More information about the PyQt mailing list