3

ここから適応されたコード:

#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'

ソースコードには次のように記載されているため、特に残念です。

"""文字列またはユニコードを小文字のアンダースコアからキャメルケースに変換"""

これを修正する方法は?


簡単な修正:

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

全体的なプロセスを説明してくれる人はいますか?

4

1 に答える 1

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

于 2012-11-27T01:08:07.807 に答える