36-@property装饰器

简介: Python

@property装饰器
Python内置的@property装饰器可以把类的方法伪装成属性调用的方式 。
class People:
def init(self, name, age):
self.__name = name
self.__age = age

@property
def age(self):

return self.__age

@age.setter
def age(self, age):

if isinstance(age, int):
    self.__age = age
else:
    raise ValueError

@age.deleter
def age(self):

print("删除年龄数据!")

obj = People(“jack”, 18)
print(obj.age)
obj.age = 19
print("obj.age: ", obj.age)
del obj.age

打印结果:
18
obj.age: 19
删除年龄数据!

将一个方法伪装成为属性后,就不再使用圆括号的调用方式了。而是类似变量的赋值、获取和删除方法了。当然,每个动作内部的代码细节还是需要你自己根据需求去实现的。

相关文章
|
Java 数据库连接 mybatis
There is no getter for property named ‘null‘ in ‘class
There is no getter for property named ‘null‘ in ‘class
186 0
There is no getter for property named ‘null‘ in ‘class
|
7月前
|
JavaScript
Vue computed property values was assigned to but it has no setter
Vue computed property values was assigned to but it has no setter
123 0
property 装饰器
property 装饰器自制脑图 property 装饰器,用来将一个 get 方法,转换为对象的属性。 添加为 property 装饰器以后,就可以像调用属性一样使用 get 方法。 使用 property 装饰的方法,必须和属性名是一样的。
70 17
property 装饰器
|
JavaScript 前端开发
|
Java
groovy下的field和property
groovy下的field和property
281 0
|
Java 数据库连接 mybatis
mybatis:There is no getter for property named ‘REGION‘ in ‘xxxEntity‘
mybatis:There is no getter for property named ‘REGION‘ in ‘xxxEntity‘
169 0
mybatis:There is no getter for property named ‘REGION‘ in ‘xxxEntity‘
|
开发者 Python
property 装饰器|学习笔记
快速学习 property 装饰器
104 0