Python中的property()函数

Posted jym503558564

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的property()函数相关的知识,希望对你有一定的参考价值。

property() 函数的作用是在新式类中返回属性值

1.语法: 

class property([fget[, fset[, fdel[, doc]]]])

2.参数:
  • fget -- 获取属性值的函数
  • fset -- 设置属性值的函数
  • fdel -- 删除属性值函数
  • doc -- 属性描述信息 

3.返回值:返回新式类属性

4.实例:银行卡案例,假设钱是私有属性。

class Card:
    def __init__(self, card_no):
        ‘‘‘初始化方法‘‘‘
        self.card_no = card_no
        self.__money = 0

    def set_money(self,money):
        if money % 100 == 0:
            self.__money += money
            print("存钱成功!")
        else:
            print("不是一百的倍数")

    def get_money(self):
        return self.__money


    def __str__(self):
        return "卡号%s,余额%d" % (self.card_no, self.__money)


    # 删除money属性
    def del_money(self):
        print("----->要删除money")
        # 删除类属性
        del Card.money


    money = property(get_money, set_money, del_money, "有关余额操作的属性")

c = Card("4559238024925290")
print(c)

c.money = 500
print(c.money)

print(Card.money.__doc__)

#删除
del c.money
print(c.money)


执行结果:

卡号4559238024925290,余额0
存钱成功!
500
有关余额操作的属性
----->要删除money

AttributeError: Card object has no attribute money

解析:

  1.get_xxx------> 当类外面 print(对象.money) 的时候会调用get_xxx方法

  2.set_xxx------> 当类外面 对象.money=值 的时候会调用set_xxx方法

  3.del.xxx-------> 当类外面 del 对象.money 的时候会调用del_xxx方法 。执行删除属性操作的时候,调用del_xxx方法

  4.“引号里面是字符串内容” ===》 字符串中写该属性的描述 ,当 类名.属性名.__doc__ 的时候会打印出字符串的内容

  

  

 

  



以上是关于Python中的property()函数的主要内容,如果未能解决你的问题,请参考以下文章

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段

Python中的@property和decorator

python中的@property

python中的property注解

python 装饰器和property

Xcode自定义代码块