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()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM