New submission from Daniel Neuhäuser dasdas...@googlemail.com:
Upon trying to create a proxy I stumbled upon this exception:
Traceback (most recent call last):
File foo.py, line 11, in module
p.__class__.__call__(p)
SystemError: PyEval_EvalCodeEx: NULL globals
Investigating further led me to this code which reproduces the exception:
class Proxy(object):
def __init__(self, proxied):
self.proxied = proxied
@property
def __class__(self):
return self.proxied.__class__
def __call__(self):
return self.proxied.__call__()
p = Proxy(lambda: 1)
p.__class__.__call__(p)
I understand that `p.__class__.__call__()` expects an argument of a different
type however this is not obvious from the exception itself. PyPy on the other
hand raises this exception:
Traceback (most recent call last):
File app_main.py, line 53, in run_toplevel
File foo.py, line 11, in module
p.__class__.__call__(p)
TypeError: 'function' object expected, got 'Proxy' instead
Which explains the issue and is expected (at least by me) and apparently Jython
raises an exception at least similar to PyPy's.
--
components: Interpreter Core
messages: 126389
nosy: DasIch
priority: normal
severity: normal
status: open
title: Unexpected exception when calling
function_proxy.__class__.__call__(function_proxy)
type: behavior
versions: Python 2.5, Python 2.6, Python 2.7, Python 3.1
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue10922
___
___
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com