2012-11-27 32 views
3

代碼適於從here描述符 '加入' 需要 '的unicode' 對象,但接收到的 'STR'

#from 'foo_bar' to 'Foo.Bar' 
def lower_case_underscore_to_camel_case(self, string): 
    print string 
    class_ = string.__class__ 
    return class_.join('.', map(class_.capitalize, string.split('_'))) 

輸出:

client_area 
TypeError: descriptor 'join' requires a 'unicode' object but received a 'str' 

由於源代碼狀態特別令人失望:

「」「將字符串或unicode從小寫字母下劃線轉換爲駝色字母」「」

如何解決這個問題?


簡單的解決辦法:

return str.join('.', map(class_.capitalize, string.split('_'))) 

任何人都可以解釋我的整個過程?

+0

剛纔介紹的「簡單修復」實際上並不是一個修復方法。你不瞭解的過程的哪一部分? – Tadeck

回答

3

代碼似乎引入不必要的複雜性,但你可以做到這樣的:

#from 'foo_bar' to 'FooBar' 
def lower_case_underscore_to_camel_case(self, string): 
    print string 
    class_ = string.__class__ 
    return class_.join(class_('.'), map(class_.capitalize, string.split('_'))) 

你實際上會縮短的最後一行是:

return class_('.').join(map(class_.capitalize, string.split('_'))) 

此外,從判斷代碼,您將收到來自「foo_bar」的內容,例如「Foo.Bar」(注意點)。

+0

感謝您的回答 – apneadiving

相關問題