python中property属性(property属性 js),本文通过数据整理汇集了python中property属性(property属性 js)相关信息,下面一起看看。

在Python开发中,考虑到安全性,我们将使用_ _#;限制可以t由类外或子类直接进行。但同时,这些私有属性并不是静态的,所以我们也需要提供私有属性的外部操作方法。通常我们用Python Property动态属性来实现。

Python的应用场景:

受限制的特征,如分数,可以不要消极。

属性的动态变化,比如年龄属性,是随时间变化的。

限制的只读属性。

如上所述,我们创建了一个学生类,希望通过实例得到每个学生的姓名和年级信息。其中,我们将学生成绩信息设置为班级的私有属性(__score)。我们可以通过下面的自定义方法调用自定义方法来操作私有属性。

我们会读书写字的学生通过调用get_score和set_score方法进行评分,如下所示:

我们实现了通过自定义方法向外界提供私有属性的访问方式。但是我们发现需要频繁调用自定义方法,比如Tony.set_score(999),导致代码不够简洁。

接下来,让让我们介绍一下财产。首先,我们可以通过调用property方法来封装get _ score和set _ score方法,然后操作私有属性。

属性语法

参数

Fget:获取属性值的函数的名称。

Fset:设置属性值的函数的名称。

Fdel:删除属性值函数名。

Doc:属性描述信息。

上面property的方法用来封装get _ score和set _ score方法,也达到了访问私有属性的目的,但是这个方法比较麻烦。

接下来我们尝试直接用属性的形式修改同名函数来实现私有属性的访问操作,这也是实际开发应用中最简单的方式,如下:

如下,在访问、更新、删除私有属性时,如何使用property进行修饰。

通过以上代码执行结果,我们可以发现:

当获得私有属性时,由@property修饰的score方法自动触发执行,默认执行getter方法。

设置私有属性时,会自动触发由@score.setter修饰的score方法的执行。

当私有属性被删除时,由@score.deleter修饰的score方法的执行被自动触发。

需要注意的是,只有一种方法可以访问Python classic类中的属性,对应的是@property修饰的方法。新类中有三种访问属性的方式,分别对应于由@property、@ methodname.setter和@ methodname.deleter修饰的三种方法。

此时,如果我们发现托尼s的分数是999,原来他不小心进了一个9。我们需要限制私有属性的赋值,如下所示:

我们在@ score.setter修饰的score方法中加入了成绩的区间判断,此时当我们执行Tony.score=999时,会因为999不满足限制而抛出ValueError: score invalid异常。

现在,如果要求分数信息输入后不允许更改,我们需要将private属性设置为只读。方法很简单。只需注释掉setter部分,如下所示。

更多python中property属性(property属性 js)相关信息请关注本站。