NekketuLabs>Codes>Python
Tweet
Python Codes
日々の業務でよく使いそうなPythonのコードスニペットをまとめています。逆引きレファレンスというよりは、ユースケースライクな単位での記述をしていきます。
汎用
キャメルケース・スネークケースの相互変換
import re
def to_snake_case(text):
u"""アンダスコア区切り文字列へ変換する
>>> to_snake_case("HogePiyo")
'HOGE_PIYO'
"""
return re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))',
'_\\1', text).upper().strip('_')
def to_camel_case(text):
u"""キャメルケース文字列へ変換する
>>> to_snake_case("HOGE_PIYO")
'hogePiyo'
"""
text = text.lower()
while '_' in text:
ix = text.index('_')
next = text[ix + 1].upper()
text = text[0:ix] + next + text[ix + 2:]
return text
アクセッサークラス
class Accessor(dict):
u"""アクセッサー
マップ型ではなくオブジェクトとしてプロパティにアクセスできるようにするためのクラス
hoge["foo"]ではなく、hoge.fooと記述できる
hoge = Accessor(foo="foo", bar="bar")
print hoge.foo, hoge.bar
"""
def __init__(self, **kwargs):
for key, val in kwargs.items():
setattr(self, key, val)
self[key] = val
def __getattr__(self, name):
if name in self:
return self[name]
return None
def __setattr__(self, name, value):
self[name] = value





