yasnippet
#contributor : Orestis Markou #name : class ... : # -- `(progn (defun join (x sep) (if (= 1 (length x)) (car x) (concat (car x) sep (join (cdr x) sep)))) "")` class ${1:ClassName}(${2:object}): "docstring for $1" def __init__(self, ${3:args}): ${3:$ (join (mapcar (lambda (x) (concat "self." x " = " x)) (split-string text ", ")) (concat "\n" (make-string 8 32))) } $0
改行混ぜてもOKみたいだ。タブを4スペースと仮定してしまっているけど一応できた。