libreOfficeのcalcのPythonマクロ用テンプレート

メソッドは、 self 引数のメソッド属性を使って、他のメソッドを呼び出すことができます。...って、
はじめて知った。(笑)
self.付けないで呼び出すとメソッドがグローバル関数扱いになってエラーが出る。
最初にこのエラーが出たとき何のことかわからず、わかるまでスゲー手間がかかった。

#! # Hoge.py
# -*- coding: utf_8 -*-

import hogehoge

class Bag:
def __init__(self):
self.data = []
def add(self, x):
self.data.append(x)
def addtwice(self, x):
self.add(x)
self.add(x)

def run(self): # マクロ登録用メソッド(メソッドが無いと登録できないっていうか、calcから実行もできないもよう。) 
bag = Bag() # マクロでの実行用
bag.addtwice() #    〃

if __name__ == '__main__':
import unopy # 別途unopy.pyスクリプトがあるのを読み込む必要あり。
XSCRIPTCONTEXT = unopy.connect() # LibreOfficeとつなぐ。
if not XSCRIPTCONTEXT:
print("Failed to connect to LibreOffice.org.")
import sys
sys.exit(0)
bag = Bag() # エディターでの実行確認用
bag.addtwice() #      〃