2016-11-09 74 views
0

我知道字典鍵需要是字符串或不可變對象。但我不想將字符串作爲關鍵字。原因是,在我使用詞典的每個地方,我都必須輸入精確的字符串,並留下如此難以編碼以及出錯的空間。如何傳遞一個對象作爲Python中的字典鍵(TestComplete問題?)

這隻發生在TestComplete(V12)上。 是否有可能對我來說,做這樣的事情,

class test(): 
    testStr = 'test' 
    testStr2 = 'test2' 

class Coverage(): 
    Data ={test.testStr : True, 
      test.testStr2 : 'something with white space'} 

如果這是一個壞主意,爲什麼呢?

+0

你試過看看會發生什麼? –

+0

當然可以。你的密鑰仍然是一個字符串,只是不是一個字符串*文字*。 – Amadan

+0

我累了,我得到一個語法錯誤 – usustarr

回答

0

您可以爲此使用Enum。

from enum import Enum  # for enum34, or the stdlib version 
# from aenum import Enum # for the aenum version 
Animal = Enum('Animal', 'ant bee cat dog') 

Animal.ant # returns <Animal.ant: 1> 
Animal['ant'] # returns <Animal.ant: 1> (string lookup) 
Animal.ant.name # returns 'ant' (inverse lookup) 

或等價:

class Animal(Enum): 
    ant = 1 
    bee = 2 
    cat = 3 
    dog = 4 

data = { 
    Animal.ant: 'small', 
    Animal.dog: 'big' 
} 
+0

對不起,我忘了提及,我的字符串不總是1個字。有時候會有空白,這就是爲什麼我沒有使用Enum。 – usustarr

0

這似乎是在TestComplete的Python的解析器問題,SmartBear都是有補丁。你可以用contact them來獲得補丁。

相關問題