首页 > 编程语言 > 详细

Python的高级特性5:谈谈python的动态属性

时间:2015-07-20 01:18:55      阅读:218      评论:0      收藏:0      [点我收藏+]

正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。

看下面一种常见的get/set操作

In [174]: class Student(object):
   .....:     pass
   .....: 

In [175]: s = Student()

In [176]: s.name = alex

In [177]: print(s.name)
alex

它的动态属性是怎么来的呢?其实,它真正的过程是这样的

In [178]: class Student(object):
   .....:     pass
   .....: 

In [179]: s = Student()

In [180]: s.__setattr__("name","alex")

In [181]: s.__getattribute__("name")
Out[181]: alex

由此可见,__setattr__与__getattribute__方法才是实例获得动态属性的真正原因。

Python的高级特性5:谈谈python的动态属性

原文:http://www.cnblogs.com/alexkn/p/4660248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!