代码改编自here:
#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从小写下划线转换为camel-case”“”
如何解决这个问题?
轻松修复:
return str.join('.', map(class_.capitalize, string.split('_')))
有人可以向我解释整个过程吗?
答案 0 :(得分: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
”(注意点)。