How can I print the string of a parameter from a property? Let's say I have this custom property fu3dm_model_gender: bpy.props.EnumProperty(name=&quot;Gender&quot;, description=&quot;Choose model's gender&quot;, items= [('OP1', &quot;Male&quot;, &quot;&quot;), ('OP2', &quot;Female&quot;, &quot;&quot;)], default='OP1') and I want to print the string of name parameter. How can I do this?
UPDATE
Actually, my property is part of an operator. In the following example I'd like to get the string of name parameter and display it where the three X's (XXX) are:
class fu3dm_WM_OT_Model_Prefs_Operator(bpy.types.Operator):
    bl_idname = &quot;wm.fu3dm_model_prefs&quot;
    bl_label = &quot;Model Preferences&quot;
    bl_description = &quot;...&quot;

    fu3dm_model_gender : bpy.props.EnumProperty(name=&quot;Gender&quot;, description=&quot;Choose model's gender&quot;, items= [('OP1', &quot;Male&quot;, &quot;&quot;), ('OP2', &quot;Female&quot;, &quot;&quot;)], default='OP1')

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)
        bpy.ops.wm.fu3dm_model_prefs('INVOKE_DEFAULT')

    def draw(self, context):

        layout = self.layout

    # BODY PREFS BOX - START
        box = layout.box()
        col = box.column()

        row = col.split()
        row.label(text=XXX)
        row.prop(self, &quot;fu3dm_model_gender&quot;, text=&quot;&quot;)
    # BODY PREFS BOX - END

    def execute(self, context):
        pass
        return {&quot;FINISHED&quot;}
Yes. Once registered you can use bl_rna.properties to access the name, its type, the items, the description etc... I'd suggest use the python console to test:
&gt;&gt;&gt; test_items = [
...     (&quot;RED&quot;, &quot;Red&quot;, &quot;&quot;, 1),
...     (&quot;GREEN&quot;, &quot;Green&quot;, &quot;&quot;, 2),
...     (&quot;BLUE&quot;, &quot;Blue&quot;, &quot;&quot;, 3),
...     (&quot;YELLOW&quot;, &quot;Yellow&quot;, &quot;&quot;, 4),
... ] 

&gt;&gt;&gt; bpy.types.Scene.my_enum = bpy.props.EnumProperty(name=&quot;Foo&quot;, items=test_items)
&gt;&gt;&gt; bpy.types.Scene.bl_rna.properties['my_enum'].name
'Foo'
&gt;&gt;&gt; bpy.types.Scene.bl_rna.properties['my_enum'].enum_items[0]
&lt;bpy_struct, EnumPropertyItem(&quot;RED&quot;)&gt;
&gt;&gt;&gt; bpy.types.Scene.bl_rna.properties['my_enum'].enum_items[0].name
'Red'

In case of an operator property, I'd suggest read the values from the operators annotation dict:
class SimpleOperator(bpy.types.Operator):
    &quot;&quot;&quot;Tooltip&quot;&quot;&quot;
    bl_idname = &quot;object.simple_operator&quot;
    bl_label = &quot;Simple Object Operator&quot;
    
    my_prop: bpy.props.StringProperty(name=&quot;foo&quot;)

    def execute(self, context):
        
        # via bl_rna
        print (self.properties.bl_rna.properties['my_prop'].name)
        
        # using annotations
        print (self.__annotations__.items())
        print (self.__annotations__['my_prop'][1]['name'])
        
        return {'FINISHED'}