クラス内からしか呼び出さないメソッドを明示する方法はないでしょうか?
Python 3.4.3を利用しています。
モジュールを自作する中でクラスのインスタンスメソッドの共通の処理を切り出して、他のインスタンスメソッドにしているのですが、後者のインスタンスメソッドは前述のインスタンスメソッド以外に呼び出されないようにしたいです(あるいは、コードを見たときに前述のインスタンスメソッドにしか使わないことがわかるようにしたい)
class testclass:
def __init__(self):
pass
def get_power_two(self, number): # 2のnumber乗を返す
answer = 1
for i in range(0, number):
answer = self.twice(answer)
return answer
def twice(self, answer): # get_power_two以外からは呼び出されない
return 2*answer
A = testclass()
print(A.get_power_two(4)) # 16
A.twice(2) # これがエラーになってほしい
上記のコードでは、get_power_two()
の処理の一部をtwice()
というインスタンスメソッドに切り出していますが、これはA.twice(2)
と呼び出せてしまいます。 このメソッドが、同じクラス内のメソッド以外から呼び出されない、あるいは呼び出されるべきでないことを明らかにしたいのですが、うまい方法はないでしょうか?
よろしくお願いします。