このエントリーをはてなブックマークに追加 Share on Facebook

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
Python Link
Sponser
ITPro News
@IT News
License
Creative Commons License
このサイトにおける作品は、原則としてクリエイティブ・コモンズ・ライセンスの下でライセンスされています。なお、個別にライセンスを設定している場合はそのライセンスに従います。
Sponser

sponser
MOONGIFT News
Lifehack News
Codezine News
Powerd By
SOY CMS
Valid XHTML 1.0 Transitional