私有属性和私有方法

作者: Mouse_Hang | 来源:发表于2019-06-30 19:30 被阅读54次

    私有属性和私有方法是只希望在对象内部使用,不希望在外界被使用的属性和方法。创建格式为:
    __属性名
    __方法名
    当私有属性和私有方法被创建以后在外界无法通过常规的方式被直接调用,但可以在对象内部任意使用。

    class Demo:
    
        def __init__(self):
            self.num = 100
            # 定义一个私有属性
            self.__num = 200
    
        # 定义一个私有方法,该方法中使用私有属性
        def __sum(self):
            return self.__num + self.num
    
        # 定义一个方法,该方法使用私有方法
        def sum(self):
            sum_1 = self.__sum()
            return self.__num + sum_1
    
    
    d = Demo()
    # print(d.__num)         该行代码会报错,无法直接在外界调用私有属性
    # print(d.__sum())       该行代码会报错,无法直接在外界调用私有方法
    print(d.sum())           # 输出500,证明私有属性和方法可以在对象内部使用
    

    其实在python中只是伪私有属性及伪私有方法,若想要在外界直接调用可以通过这样一种方式:
    对象.(下划线)类名__属性或方法名;
    例如:
    d._Demo__num
    d._Demo__sum()

    class Demo:
    
       def __init__(self):
           self.num = 100
           # 定义一个私有属性
           self.__num = 200
    
       # 定义一个私有方法,该方法中使用私有属性
       def __sum(self):
           return self.__num + self.num
    
       # 定义一个方法,该方法使用私有方法
       def sum(self):
           sum_1 = self.__sum()
           return self.__num + sum_1
    
    
    d = Demo()
    print(d._Demo__num)    # 输出为:200
    print(d._Demo__sum())  # 输出为:300
    

    同时还应该注意父类的私有属性和私有方法并不能在子类中直接调用,只能通过调用父类的共有方法来间接的访问父类的私有属性和私有方法。

    相关文章

      网友评论

        本文标题:私有属性和私有方法

        本文链接:https://www.haomeiwen.com/subject/jtobcctx.html