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

5 属性 property

时间:2017-11-29 22:45:22      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:get   属性   img   getter   方便   set   bsp   设置   调用   

1.属性  property

 调用私有属性通过实例方法调用。达到这种效果

#property的作用:相当于把方法进行了封装, 开发者在对属性设置数据的时候更方便
class Dog(object):
    def __init__(self):
        self.__num = 100
    def set_num(self,new_num):
        print("---setter")
        self.__num = new_num
    def get_num(self):
        print("----getter--")
        return self.__num

    num = property(get_num,set_num)    #通过属性实现这种效果

dog1 = Dog()
#print(dog1.get_num())
#dog1.set_num(50)
#print(dog1.get_num())

print("-"*50)
dog1.num = 111   #相当于调用了dog1.set_num(200)
print(dog1.num)   #相当于调用了dog1.get_num()

 

####  运行结果

---setter
----getter--
111

 

#注意点:
#t.num 到底是调用getNum()还是setNum(),要根据实际的场景来判断,
#1. 如果是给t.num赋值 那么一定调用setNum()
#2. 如果是获取t.num的值,那么就一定调用getNum()

 

 

 

2.@property

class Dog(object):
    def __init__(self):
        self.__num = 100

    @property
    def to_num(self):       #同名函数
        print("---getter")
        return self.__num

    @to_num.setter    #函数名.setter
    def to_num(self,new_num):  #同名函数
        print("---setter")
        self.__num = new_num


   # num = property(get_num,set_num)

dog1 = Dog()
dog1.to_num = 111   #相当于调用to_num(111)
print(dog1.to_num)   #相当于调用to_num()

 

 

---setter
---getter
111

 

    技术分享图片

 

5 属性 property

标签:get   属性   img   getter   方便   set   bsp   设置   调用   

原文地址:http://www.cnblogs.com/venicid/p/7922988.html

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