美文网首页工作生活
私有属性和私有方法

私有属性和私有方法

作者: Chaweys | 来源:发表于2019-06-29 16:01 被阅读0次

    #coding=utf-8
    class Employee:
    
        def __init__(self,name,age):
            self.name=name
            self.age=age
    
    e=Employee("Vince",18)
    print(e.name)    #这里的e.name指实例对象 e 里的实例属性self.name
    print(e.age)
    

    Python 对于类的成员没有严格的访问控制限制,这与其他面向对象语言有区别。关于私有属性和私有方法,有如下要点:
    1、通常我们约定,两个下划线开头的属性是私有的(private)。其他为公共的(public)。
    2、类内部可以访问私有属性(方法)
    3、类外部不能直接访问私有属性(方法)
    4、类外部可以通过 "_类名__私有属性(方法)名" 访问私有属性(方法)
    【注】方法本质上也是属性!只不过是可以通过()执行而已。所以,此处讲的私有属性和公有属性,也同时讲解了私有方法和公有方法的用法。
    
    

    class Employee:
    
        __company="SXT"      #私有类属性
    
        def __init__(self,name,age):
            self.name=name
            self.__age=age   #私有(实例)属性
    
    
        def __work(self):    #私有方法
            print("努力,奋斗")
            print("年龄是{0}".format(self.__age)) #在类内部是可以自由调用私有属性的
            print(Employee.__company)             #在类内部是可以自由调用私有属性的,这里调用私有的类属性
    
    
    e=Employee("Vince",18)
    print(e.name)                        #这里的e.name指实例对象 e 里的实例属性self.name
    
    #print(e.__age)                      #age定义成私有的属性之后,即不能直接访问了
    
    
    print(e._Employee__age)              #访问私有属性的格式:_类名__私有属性名
    print(dir(e))                        #dir函数查看对象e 存储私有属性的格式就为:['_Employee__age', '_Employee__work',...
    e._Employee__work()                  #调用私有方法的格式:_类名__私有方法名
    
    print(Employee._Employee__company)   #外部访问私有的类属性:_类名__私有属性名
    

    相关文章

      网友评论

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

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