PythonのClass内部から外部の変数を参照する
<状況>
Python (Cython)を使って、以下のようなコードを書いています (かなり簡略化しています)。
cdef class Branch:
def __cinit__(self):
self.param = npr.beta(1.0, gamma)
def make_branch():
for i in range(length):
new_branch = Branch()
def main(int length, double gamma):
make_branch(length)
Cythonでの関数main(length, gamma)
には、通常のPythonのファイルから作るべきBranchの数とそのパラメータgamma
を渡しており、Branchを作るたびにBeta(1.0, gamma)からparameterを作ります。
<質問>
Branchクラスから、直接的にmain()
にあるgamma
を参照することはできますでしょうか。以下のように、順々にgamma
を渡していけば問題ないことはわかるのですが、実際は構造が複雑で、いちいち変数を渡して行くのが面倒なので、別の方法があればと思い質問させて頂きました。
よろしくお願い致します。
cdef class Branch:
def __cinit__(self, gamma):
self.param = npr.beta(1.0, gamma)
def make_branch():
for i in range(length):
new_branch = Branch(gamma)
def main(int length, double gamma):
make_branch(length, gamma)