【发布时间】:2018-08-06 17:40:29
【问题描述】:
给定以下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
产生异常,我尝试了其他方法从参数枚举中提取类名但没有效果,有人可以帮忙吗?
【问题讨论】:
-
enumerate不是enumeration(通常这是一个糟糕的名称选择,因为内置的enumerate函数在该名称上具有 dibs)。 -
Random_Skew_Enum['SKEW_LEFT_04'] is Random_Skew_Enum.SKEW_LEFT_04