- changed status to invalid
super method does not work
Issue #118
invalid
I am using pyobjc 3.0.4 and python version 2.7.9
I have tried the simple example MyClass given below
Fo some reason I am getting the following exception: 'super' object has no attribute 'init'
This seems wrong. Am I doing something incorrectly?
>>> from Foundation import NSObject >>> class MyClass(NSObject): ... def init(self): ... self = super(MyClass, self).init() ... return self ... >>> c = MyClass.alloc().init() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in init AttributeError: 'super' object has no attribute 'init' >>> NSObject.alloc().init() <NSObject: 0x102854b20>
Comments (2)
-
-
- removed version
Removing version: 3.0 (automated comment)
- Log in to comment
Use "from objc import super" at the top of the file to get a working version of super.
This was already necessary in PyObjC 2.x to avoid strange behavior in edge cases and is now always necessary due to implementation changes in PyObjC.
I have written PEP 447 to add the necessary flexibility to Python's builtin super, but that PEP is stagnant because it deals with a very technical details of Python's attribute resolution process and I haven't been able to describe the problem and my proposal clearly enough to get much traction.