python面向对象的三大特征--封装

 1 #coding:utf-8
 2 __author__="tang"
 3 
 4 #第一个层面的封装:类就是麻袋,本身就是一种封装
 5 #第二个层面的封装:类中定义私有的,只在类的内部使用,外部无法访问
 6 
 7 # 任何以单下滑线开头的名字都是内部的,私有的,只在类的内部使用,外部无法访问 
 8 # 私有属性、方法——Python并没有真正的私有化支持,但可用下划线得到伪私有
 9 # 尽量避免定义以下划线开头的变量
10 #    (1)_xxx      "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,需通过类提供的接口进行访问;不能用'from module import *'导入 可以永 from xx import _func
11 #    (2)__xxx    类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通。)," 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
12 #     (3)__xxx__ 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__() 代表类的构造函数。
13 # #
14 
15 class People:
16     __star="earth"
17     def __init__(self,id,name,age,salary):
18         print('----->',self.__star)
19         self.id=id
20         self.name=name
21         self._age=age
22         self.salary=salary
23 
24 
25     def get_id(self):
26         print("我是私有方法呀,你的id",self.id)
27 
28     # 接口函数  访问函数
29     def get_star(self):
30         print(self.__star)
31 
32 #print(People.__dict__)
33 
34 p1=People("165661","alex",20,100000)
35 print(p1._age)
36 # print(p1._star)
37 # print(p1._People__star)
38 
39 p1.get_star()

猜你喜欢

转载自www.cnblogs.com/tangcode/p/11375715.html