公有方法:何地調用都可以。無任何修飾。
私有方法:只能在類內部調用。使用雙下划線__對類方法進行修飾。
魔法方法:在類名的前面和后面都使用雙下划線進行修飾。
class Book: def __init__(self,name,author,price): self.name = name self.author = author self.price = price def __check_name(self):#私有方法 if self.name == '': return False else:return True def get_name(self): #公有方法 if self.__check_name():print(self.name,self.author) else:print('No value') class BK(Book): def __init__(self, name, author, price): super().__init__(name, author, price) def __check_name(self): print("hello") def say(self): Book.get_name(self) #從這里的打印可以看到,BOOK類的實例屬性已經被類BK傳入的參數給重寫。 BK.__check_name(self) if __name__ == '__main__': b =Book('python程序設計教程','江紅',59.0) b.get_name() # b.__check_name() #直接調用私有方法是非法的,此處會報錯;私有方法應該在類內部調用。 print("-----") q = BK('java程序設計教程','唐三',69.0) q.say()
