创建可管理的对象属性
Posted 安迪_963
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建可管理的对象属性相关的知识,希望对你有一定的参考价值。
下面先创建一个计算面积的类:
#!/usr/bin/env python #coding:utf-8 #Created by Andy @ 2017/7/1 from math import pi class Circle: def __init__(self, radius): self.radius = radius def get_radius(self): return self.radius def set_radius(self, value): if not isinstance(value, (int, float)): raise ValueError("Wrong type!") self.radius = float(value) def get_area(self): return self.radius ** 2 * pi
这样,如果我需要得到某个实例的半径,或者面积,需要这样做:
c = Circle(3) print(c.get_radius())
但是,有没有更简单的办法呢?
#!/usr/bin/env python #coding:utf-8 #Created by Andy @ 2017/7/1 from math import pi class Circle: def __init__(self, radius): self.radius = radius def get_radius(self): return self.radius def set_radius(self, value): if not isinstance(value, (int, float)): raise ValueError("Wrong type!") self.radius = float(value) def get_area(self): return self.radius ** 2 * pi r = property(get_radius, set_radius) c = Circle(3) print(c.r) c.r = 5 print(c.r, c.get_radius())
当然这里property 可以分别设置:
fget fset fdel
这里只需要设置前面的get, 及set方法,所以只写了前两个。
可以看到,经过property的使用,我们可能直接通过对r调用,来实现对 对象属性的 管理
以上是关于创建可管理的对象属性的主要内容,如果未能解决你的问题,请参考以下文章
python-类与对象 如何创建可管理的对象属性 (图文并茂)
python-类与对象 如何创建可管理的对象属性 (图文并茂)