Indeed, getting the attribute returns a float so the attribute should be settable as a float for consistency.
If users are familiar with GLSL[1], they might be surprised that the type of vectors returned by swizzle attribute access is not a vector: >>> from pygame.math import Vector3, enable_swizzling >>> enable_swizzling() >>> Vector3() <Vector3(0, 0, 0)> >>> v = Vector3(1, 2, 3) >>> v.xy (1.0, 2.0) >>> type(v.xy) <class 'tuple'> [1] https://en.wikibooks.org/wiki/GLSL_Programming/Vector_and_Matrix_Operations#Components On Sun, 25 Feb 2018 at 09:38 René Dudfield <ren...@gmail.com> wrote: > Hi, > > that's a good point. > > TLDR; I think it should be on by default too. There's still a couple of > issues with doing that. > > > It should have _no_ cost in almost all cases for attribute access. Because > it first tries normal attribute access. > See: https://github.com/pygame/pygame/blob/master/src/math.c#L1517 > > I guess the reason is it's off by default is because it was implemented > later on, and to leave it on in a buggy state caused issues. > > Not a big concern, but turning it on by default will perhaps have annoying > compatibility issues for people using an old pygame. > If they forget to turn it on. > > There's two test failures once I changed to be enabled by default: > > >>> import pygame.math > >>> v = pygame.math.Vector2(1,2) > >>> v.x = 3 > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: a sequence is expected > >>> pygame.math.disable_swizzling() > >>> v.x = 3 > >>> v > <Vector2(3, 2)> > > These are to do with assignment to a variable. > https://github.com/pygame/pygame/pull/403 > > > > > On Sat, Feb 24, 2018 at 7:23 PM, Daniel Pope <ma...@mauveweb.co.uk> wrote: > >> Does the Swizzling have a cost if you're not using it? If not I'd be >> tempted to say it should always be on. >> >> >> On Sat, 24 Feb 2018, 18:00 René Dudfield, <ren...@gmail.com> wrote: >> >>> Hey hey, >>> >>> I noticed the pygame.math vectors couldn't be pickled/unpickled. >>> >>> So that has been added here: >>> https://github.com/pygame/pygame/pull/403 >>> >>> Could someone please review? >>> >>> >>> cheers, >>> >>> >>> >>> On Sat, Feb 24, 2018 at 10:30 AM, René Dudfield <ren...@gmail.com> >>> wrote: >>> >>>> Hello, >>>> >>>> I'm going to remove the experimental notice from pygame.math in the >>>> docs. >>>> https://www.pygame.org/docs/ref/math.html >>>> >>>> It seems fine to me, and I guess no one has plans to change it? >>>> >>>> >>>> best regards, >>>> >>> >>> >