I'm using Python 3.4.3.
While creating my own module, I cut out the common processing of the instance method of the class and make it another instance method, but I want to prevent the latter instance method from being called other than the above instance method (or) I want to see when I look at the code that I only use it for the instance methods mentioned above)
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) # これがエラーになってほしい
In the above code, a part of the process of
get_power_two() is cut out to an instance method called
twice() , which can be called
A.twice(2) . I'd like to make it clear that this method isn't or shouldn't be called by anyone other than a method in the same class. Is there a good way?
Let's name the method
In Python, add
_ to indicate that you don't want it to be used from the outside.
It may be used ignoring it, but that is the responsibility of the user.
There is also a way to add
__ , but it is not recommended because it will be too inconvenient.