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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions