python3小白课:用property函数定义属性

除了我们可以直接设定实例变量之外,我们在定义类的时候,还可以定义一些获取、设置等的专门的方法,将这些方法放到property参数中,可以让实例变量拥有这些属性。

这么说可能大家听得不是太明白,我们先来看一眼property函数(属性)的语法格式和说明,再来举例子:

property函数的语法格式为:

property(fget=None, fset=None, fdel=None, doc=None)

这里四个参数,fget表示获取方法,fset表示赋值方法,fdel表示删除属性时调用的方法(使用del 实例名.属性名可以删除属性,比较少用),doc表示说明文档,是一个字符串。你可以传入0-4个参数,如果没有传入的参数,表示不允许对那个属性做那样的事。比如传入0个参数,表示该属性既不能读,也不能写;又比如传入1个参数,表示为只读属性。以此类推。

下面我们直接来看一个例子来理解吧。

# coding:utf-8
class Student:
    def getname(self):
        return self.name
    def setname(self, name):
           print("进行了设置")
        self.name = name
    this_name = property(getname, setname)
s = Student()
s.this_name = "小白白"
print(s.this_name)

如上的代码,我们设定了一个可以读写的属性this_name,为了跟name进行区别,我增加了前缀,后续在进行设置和获取的时候会分别调用setname(赋值时会调用那个我额外补的print函数,你也可以把print函数改成一些赋值前的前置验证啊检查啊什么的,达到不符合条件就无法赋值的目的)和getname方法。

单词释义

单词 释义
property 性质,属性
get 获取
set 设置
del delete删除的简写
doc document文档的简写
this 这个,这一个
Copyright © 雪山凌狐教程 all right reserved,powered by Gitbook该文件修订时间: 2020-05-23 21:52:43

results matching ""

    No results matching ""