property属性介绍
property属性就是负责把一个方法当做属性进行使用,这样做可以简化代码使用。当修改值或者设置值的时候只需要像属性那样使用。
定义property属性有两种方式
- 装饰器方式
- 类属性方式
1. 使用装饰器方式
class Person(object):
def __init__(self):
self.__age = 0
# 装饰器方式的property, 把age方法当做属性使用, 表示当获取属性时会执行下面修饰的方法
@property
def age(self):
return self.__age
# 把age方法当做属性使用, 表示当设置属性时会执行下面修饰的方法
@age.setter
def age(self, new_age):
if new_age >= 150:
print("输入错误")
else:
self.__age = new_age
# 创建person
p = Person()
print(p.age)
p.age = 100
print(p.age)
p.age = 1000
运行结果:
0
100
输入错误
快捷设置:在pycharm解释器中可以使用快捷方式props直接生成并同步修改。
2. 使用类属性方式
下面的方法应该更符合我们的设置习惯,在常规的定义函数方法后再增加一行property的设置即可:
class Person(object):
def __init__(self):
self.__age = 0
def get_age(self):
"""当获取age属性的时候会执行该方法"""
return self.__age
def set_age(self, new_age):
"""当设置age属性的时候会执行该方法"""
if new_age >= 150:
print("输入错误")
else:
self.__age = new_age
# 类属性方式的property属性
age = property(get_age, set_age)
# 创建person
p = Person()
print(p.age)
p.age = 100
print(p.age)
p.age = 1000
运行结果:
0
100
输入错误
property的参数说明:
- 第一个参数是获取属性时要执行的方法
- 第二个参数是设置属性时要执行的方法
网友评论