公有方法:何地调用都可以。无任何修饰。
私有方法:只能在类内部调用。使用双下划线__对类方法进行修饰。
魔法方法:在类名的前面和后面都使用双下划线进行修饰。
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()