工作生活

私有属性和私有方法

2019-06-29  本文已影响0人  Chaweys

#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)   #外部访问私有的类属性:_类名__私有属性名
上一篇下一篇

猜你喜欢

热点阅读