This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
| Author | benjamin.peterson |
|---|---|
| Recipients | benjamin.peterson, esrever_otua |
| Date | 2008年04月11日.02:58:38 |
| SpamBayes Score | 0.10753698 |
| Marked as misclassified | No |
| Message-id | <1207882720.12.0.757183393948.issue2612@psf.upfronthosting.co.za> |
| In-reply-to |
| Content | |
|---|---|
This is because y is a new-style class (because file is) and z is not.
If the return type of new-style classe's len is not an int, Python tries
to convert it, which is why that works for the first example. However,
that conversion doesn't happen in old-style classes. Try:
>>> class z(object):
... def __init__(self, name):
... self.f = file(name, 'r')
... def __len__(self):
... self.f.seek(0, 2)
... return self.f.tell()
>>> x = z('/tmp/longfile')
>>> len(x)
[Whatever it is] |
|
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2008年04月11日 02:58:40 | benjamin.peterson | set | spambayes_score: 0.107537 -> 0.10753698 recipients: + benjamin.peterson, esrever_otua |
| 2008年04月11日 02:58:40 | benjamin.peterson | set | spambayes_score: 0.107537 -> 0.107537 messageid: <1207882720.12.0.757183393948.issue2612@psf.upfronthosting.co.za> |
| 2008年04月11日 02:58:39 | benjamin.peterson | link | issue2612 messages |
| 2008年04月11日 02:58:38 | benjamin.peterson | create | |