星期二, 9月 14, 2010

python 的 private method

純粹記錄一下,讓自己知道曾經犯過這個錯。類別裡的 method 名稱加上 __ 就是 private,所以,子類別並不會知道有這個 method,也不會發生 Method overriding

class Rectangle:
def __init__(self):
self.parse()
self.__parse()

def parse(self):
print("parse(): Rectangle")

def __parse(self):
print("__parse(): Rectangle")

class BoxType(Rectangle):
def parse(self):
print("parse(): BoxType")

# 不會被執行到!!
def __parse(self):
print("__parse(): BoxType")

b = BoxType()

# Output:
# parse(): BoxType
# __parse(): Rectangle


就這樣...

沒有留言: