Fixing setting this in Python when using __slots__
Don't attempt to use the class's __dict__ for setting 'this' when
a user has extended a class with:
__slots__ = ['this'].
Was segfaulting. Now we fall back to a simple PyObject_SetAttr if the
usual approach to setting 'this' in __dict__ does not work.
Closes #1673 Closes #1674
This commit is contained in:
parent
a9731251a4
commit
a01e8474f6
4 changed files with 46 additions and 15 deletions
|
|
@ -21,3 +21,16 @@ if grabstaticpath() != None:
|
|||
Test.static_func()
|
||||
if grabstaticpath() != os.path.basename(mypath):
|
||||
raise RuntimeError("grabstaticpath failed")
|
||||
|
||||
# slots test
|
||||
fs = ForSlots()
|
||||
if fs.ValidVariable != 99:
|
||||
raise RuntimeError("ValidVariable failed")
|
||||
fs.ValidVariable = 11
|
||||
if fs.ValidVariable != 11:
|
||||
raise RuntimeError("ValidVariable failed")
|
||||
try:
|
||||
fs.Invalid = 22
|
||||
raise RuntimeError("It should not be possible to set a random variable name")
|
||||
except AttributeError:
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue