Python 描述符';加入';需要一个';unicode';对象,但收到一个';str';
代码改编自: 输出:Python 描述符';加入';需要一个';unicode';对象,但收到一个';str';,python,Python,代码改编自: 输出: client_area TypeError: descriptor 'join' requires a 'unicode' object but received a 'str' 尤其令人失望,因为源代码中指出: “”“将字符串或unicode从小写下划线转换为驼峰大小写”“” 如何解决这个问题 简易修复: return str.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('_')))
有人能给我解释一下整个过程吗?代码似乎引入了不必要的复杂性,但您可以这样做:
#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\u Bar
”收到类似“Foo.Bar
”(注意一个点)的内容。您刚刚引入的“轻松修复”实际上不是修复。您不了解流程的哪一部分?
return class_('.').join(map(class_.capitalize, string.split('_')))