Using static methods for alternate constructors (like in Python)

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Vaskivo

I’m trying to make an alternate constructor to a custom class.

Example:

class_name FightingCharacter

func init(name, hp, attack):
    # do stuff
    pass

static func alternative_constructor(my_struct):
    return FightingCharacter.new(
        my_struct.name,
        my_struct.hp,
        my_struct.attack
    )

It doesn’t work. The compilation fails with ‘Parser Error: Using own name in class file is not allowed (creates a cyclic reference)’

Is there any other way to achieve what I want?
(It’s a common idiom in Python)