码迷,mamicode.com
首页 > 其他好文 > 详细

property属性

时间:2018-06-03 23:30:48      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:get   IV   区别   __init__   str   init   执行   %s   分析   

property类有3个方法getter、setter、deleter, 分别把对应的操作绑定到指定的函数实现。
因此:
1) 对property类对象的读操作就是执行绑定到getter的函数
2) 对对象赋值操作就是执行绑定到setter的函数
3) 对删除对像操作则执行绑定到deleter的函数,
这是property类所特别的功能,也是python区别于其它语言所特有的功能。  用例子来说明:
class People:
    def __init__(self, name):
        self.__name = name

    @property
    def name(self):
        print(welcome %s  % self.__name)

    @name.getter
    def name(self):
        print(>>>>:,self.__name)

    @name.setter
    def name(self,val):
        if not isinstance(val,str):
            print(名字必须是字符串)
            return
        self.__name = val

    @name.deleter
    def name(self):
        print(deleter)
        print(不允许删除)




p = People(alex)
p.name
del p.name
p.name=zhang
p.name

运行结果:

>>>>: alex
deleter
不允许删除
>>>>: zhang

分析总结:property 它把函数属性编程数据属性使用。例如p.name就是用了getter。 del p.name用的是deleter。p.name=‘zhang‘用的是setter

property属性

标签:get   IV   区别   __init__   str   init   执行   %s   分析   

原文地址:https://www.cnblogs.com/z18271397173/p/9130997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!