python 公有属性和私有属性
来源:互联网 发布:做网站必备软件 编辑:程序博客网 时间:2024/04/26 06:44
十三、python 公有属性和私有属性
属性:
方法:
class Chinese(Person):
nation = 'China'
def __init__(self,name):
self.__name = name
def msg(self):
print self.name
属性:
-类属性
-实例属性
属性的可见性:
-公有属性
-私有属性
class Chinese(Person):
nation = 'China' #类属性
def __init__(self,id,name):
self.id = id #公有属性
self.__name = name #实例属性,私有属性
def msg(self):
print self.name
私有属性:
python并没有真正的私有属性
用__定义的属性,只是被改名换姓而已
用_定义的属性,意义在于唤起用户的注意,看成私有属性
------------------------------------------------------------------
class Chinese(object):
nation = 'Chain'
def __init__(self, id, name):
self._id = id
self.__name = name
def sayHi(self, msg):
print self.__name,msg
#定义实例
aidon = Chinese(1,'aidong')
bajie = Chinese(2,'bajie')
#通过类看类属性
Chinese.nation
#通过实例看类属性
aidon.nation
#通过类修改类属性
Chinese.nation=u'中国'
#再次查看
Chinese.nation
aidon.nation
bajie.nation
#通过实例修改类属性(只对该实例管用):尽量不用实例对象修改类属性
aidon.nation='Chain'
#查看实例字典
aidon.__dict__
#修改实例属性(_)的值(_id感觉是点没有被保护,底层也没有改名换姓)
aidon._id
aidon._id = 100 #是否能修改该实例对象的私有属性值(可以)
aidon._id
#修改实例属性(__)的值(__name感觉是点被保护,底层其实是改名换姓)
bajie.__name
bajie.__name = "tangzeng" #该方式修改是不对的(相当于是新增咯)
bajie._Chinese__name = 'wukong' #这样才可以,我们定义实例属性是__name,但是压根被python改咯个名字,规律是:_classname__propertyname
#调用方法:
aidon.sayHi("hello aidon")
------------------------------------------------------------
怎么真正来操作(读写删除)属性呢?要直接访问属性就违背面向对象封装原则
- python 公有属性和私有属性
- 函数的公有属性和私有属性
- js--属性和方法(私有/公有)
- js面向对象的公有、私有属性和方法
- JavaScript公有、私有以及受保护的属性和方法
- Python----伪私有属性和私有方法
- python 的公有和“私有”
- 公有,保护,私有 派生的成员属性
- C# 类,私有公有属性,继承
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性
- javascript 原型方法,对象方法,类方法;私有属性,公有属性,公有静态属性
- python 类的私有属性和方法
- python类私有属性
- Python访问私有属性
- Python 定义私有属性
- python对象:访问私有属性和私有方法
- js面向对象之公有、私有、静态属性和方法详解
- js面向对象之公有、私有、静态属性和方法详解
- python 经典类和新式类
- Ajax简单解析
- python显示图片
- 学习记录(8)
- POJ 1088 滑雪——DP
- python 公有属性和私有属性
- Codeforces Round #428 (Div. 2) D
- hdu 4944 FSF’s game 数学(公因子)+递推公式
- test ATL OCX by vs2015
- 面试运维
- iptables: No config file. [WARNING]!
- nodejs-socket网络编程
- 关于在Aptana Studio中编写js效果在浏览器中的刷新问题,光标变黑色矩形问题
- 利用Frida从TeamViewer内存中提取密码