创建可管理的对象属性

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-类与对象 如何创建可管理的对象属性 (图文并茂)

python-类与对象 如何创建可管理的对象属性 (图文并茂)

7-4 如何创建可管理的对象属性

微信小程序代码片段