繁体   English   中英

描述符“join”需要“unicode”对象,但收到“str”

[英]descriptor 'join' requires a 'unicode' object but received a '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('_')))

谁能给我解释一下整个过程?

代码似乎引入了不必要的复杂性,但您可以这样做:

#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 ”(注意一个点)的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM