Is there a way to implement the ** operator on a custom object

Chris Angelico rosuav at gmail.com
Fri Feb 9 01:06:42 EST 2024


On Fri, 9 Feb 2024 at 17:03, Cameron Simpson via Python-list
<python-list at python.org> wrote:
>
> On 08Feb2024 12:21, tony.flury at btinternet.com <tony.flury at btinternet.com> wrote:
> >I know that mappings by default support the ** operator, to unpack the
> >mapping into key word arguments.
> >
> >Has it been considered implementing a dunder method for the **
> >operator so you could unpack an object into a key word argument, and
> >the developer could choose which keywords would be generated (or could
> >even generate 'virtual' attributes).
>
> Can you show us why you think that would look like in code?
>
> Note that Python already has `a ** b` to raise `a` to the power of `b`,
> and it has a bunder method `__pow__` which you can define.

I presume this is more like:

obj = SomeObject()
func(**obj)

ie making the object behave in a dict-like way. I can't remember how
this is implemented, but you can create the necessary methods to have
your object produce whatever it likes.

ChrisA


More information about the Python-list mailing list