Python中的property()函数

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

1.语法: 

class property([fget[, fset[, fdel[, doc]]]])2.参数:
  • fget -- 获取属性值的函数
  • fset -- 设置属性值的函数
  • fdel -- 删除属性值函数
  • doc -- 属性描述信息 

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

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

1class Card: 2 def __init__(self, card_no): 3 '''初始化方法''' 4 self.card_no = card_no 5 self.__money = 0 6 7 def set_money(self,money): 8 if money % 100 == 0: 9 self.__money += money 10 print("存钱成功!") 11 else: 12 print("不是一百的倍数") 13 14 def get_money(self): 15 return self.__money 16 17 18 def __str__(self): 19 return "卡号%s,余额%d" % (self.card_no, self.__money) 20 21 22 # 删除money属性 23 def del_money(self): 24 print("----->要删除money") 25 # 删除类属性 26 del Card.money 27 28 29 money = property(get_money, set_money, del_money, "有关余额操作的属性") 30 31c = Card("4559238024925290") 32print(c) 33 34c.money = 500 35print(c.money) 36 37print(Card.money.__doc__) 38 39#删除 40del c.money 41print(c.money) 42 43 44执行结果: 45 46卡号4559238024925290,余额0 47存钱成功! 48500 49有关余额操作的属性 50----->要删除money 51 52AttributeError: '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__ 的时候会打印出字符串的内容

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java8新特性

Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str

JS 对象数组Array 根据对象object key的值排序sort,很风骚哦

有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak