OOP-成员描述符(property)

mac2024-03-17  30

类的成员描述符(属性)

类的成员描述符是为了在类中对类的成员属性进行相关操作二创建的一种方式 get:获取属性的操作set:修改或者添加属性的操作delete:删除属性的操作 如果想使用类的成员描述符,大概有三种方法 使用类实现描述器使用属性修饰使用property函数 property(fget,fset,fdel,doc) 无论那种修饰符都是为了对成员属性进行相应的控制 类的方式:适合多个类中的多个属性共用一个描述符property:适用当前类中使用,可以控制一个类中多个属性属性修饰符:适用于当前类中使用,控制一个类中的一个属性 # peroperty案例 # 定义一个Person类,我们希望都用大写方式保存 # 年龄,我们希望内部统一用整数保存 # x = property(fget,fset,sdel,doc) class Person(): ''' 这是一个人类 这个类有属性 ''' # 函数名称可以任意 def fget(self): print("fget") return self._name * 2 def fset(self,name): # 所有输入的姓名以大写的形式保存 print("fset") self._name = name.upper() def fdel(self): print("fdel") self._name = "NoName" name = property(fget,fset,fdel,"对那么进行操作") p1 = Person() p1.name = "caipo" print(p1.name) fset fget CAIPOCAIPO # 1.在用户输入年龄的时候,可以输入整数,小数,浮点数 # 2.为了数据清洁,只保存整数,直接舍去小数点 import math class Person(): def fget(self): print("fget") return self._age def fset(self,age): print("fset") #self._age = age/1 self._age = int(age) def fdel(self): print("fdel") self._age = 0 age = property(fget,fset,fdel,"对那么进行操作") p = Person() p.age = float(input("请输入整数或小数:")) print(p.age) 请输入整数或小数:18.2 fset fget 18

最新回复(0)