python类中的公有方法与私有方法

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

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()
原文地址:https://www.cnblogs.com/chenruhai/p/12464131.html