Help understanding code
Duncan Booth
duncan.booth at invalid.invalid
Mon Apr 11 04:52:41 EDT 2005
Fredrik Lundh wrote:
> Dhruva Hein wrote:
>> results = pc()
>> <=== what is the difference between pc and pc()?
>
> pc refers to an object, pc() calls it. in this case, it looks like pc is
> the
> portal catalog, and calling the catalog returns the contents.
>
Unfortunately there is quite a bit going on behind the scenes here so if
you don't know Plone it will be confusing:
Calling the catalog is equivalent to calling the catalog method
searchResults. This performs a catalog search and if (as in this case) no
other arguments are passed to it it will pick up the search parameters from
the current REQUEST object.
Also it will add some additional search parameters: there must be a match
between the user's allowed roles or userid and the 'allowedRolesAndUsers'
index, and if the user doesn't have permission to access expired content,
it will add some additional parameters to constrain the search to objects
after their effective date and before their expired date.
<snip>
> that line is equivalent to
>
> temp = numbers["bytype"]
> temp[ctype] = num
... and since temp is a constant throughout the loop it can be extracted
from the loop and given a better name.
All of that code would have been clearer if the original author had simply
kept a reference to the bytype and bystate dictionaries and not insisted on
the extra level of indirection by accessing them through the numbers
dictionary.
More information about the Python-list
mailing list