繁体   English   中英

Python:查找枚举类的名称

[英]Python: Finding the name of a enum class

给出以下python代码:

class Random_Skew_Enum( Enum ):
    NO_SKEW      = 0
    SKEW_LEFT_01 = 1
    SKEW_LEFT_02 = 2
    SKEW_LEFT_03 = 3
    SKEW_LEFT_04 = 4
    SKEW_LEFT_05 = 5
    SKEW_LEFT_06 = 6
    SKEW_RIGHT_01 = 7
    SKEW_RIGHT_02 = 8
    SKEW_RIGHT_03 = 9
    SKEW_RIGHT_04 = 10
    SKEW_RIGHT_05 = 11
    SKEW_RIGHT_06 = 12

    def _Convert ( self, enumeration ):

        text_to_enumeration = {}
        enumeration_name = ""

        def Do_Convert( self, value ):

            result = text_to_enumeration.get( value )
            if result is None:
                raise CCS_Enumeration_Error( "The enumeration '{0:s}' does not contain the value '{1:s}.".format( enumeration_name, value ) )
            return result

        enumeration_name = enumerate.name
        for enumerate in enumeration:
            match_data = self._split_enumeration.search( enumerate_name )
            new_key = match_data.group( 3 ).upper().strip()
            text_to_enumeration.update( dict( [ new_key, enumerate ] ))
        return Do_Convert

如果我然后代码:

_Convert_Text_To_Random_Skew = self._Convert ( Random_Skew_Enum )

线

enumeration_name = enumerate.name

生成异常,我尝试了其他方法从参数枚举中提取类的名称,但没有任何效果,请问有什么帮助吗?

访问对象名称( 如果有 )的正确属性是__name__

如果要使用类名,则需要type(enumerate).__name__ (如果使用的是老式类,则需要enumerate.__class__.__name__ )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM