Skip to content

Support inheriting Go objects in Python and overriding methods/attributes? #247

@IcyVizi

Description

@IcyVizi

I am exploring gpython to embed Python scripting in a Go project. I have the following question regarding object interoperability:

  • Is it possible to define a Python class that inherits from a Go object exposed to gpython?
  • Can such a Python subclass override methods or add new attributes on top of the Go object?

For example, in Python I would like to do something like:

# Hypothetical example
class PyVacation(MyGoVacation):
    def new_method(self):
        return "Python override"
    
    @property
    def new_attr(self):
        return "Python attribute"

Currently, I am able to expose Go objects to gpython and call Go methods, but I am unsure if inheritance is supported.

Could you clarify whether this is possible, and if not, are there recommended workarounds (e.g., composition or monkey-patching) to extend Go objects in Python?

Thank you for your help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions