# python3小白课:用property函数定义属性 除了我们可以直接设定实例变量之外,我们在定义类的时候,还可以定义一些获取、设置等的专门的方法,将这些方法放到`property`参数中,可以让实例变量拥有这些属性。 这么说可能大家听得不是太明白,我们先来看一眼`property`函数(属性)的语法格式和说明,再来举例子: property函数的语法格式为: ```python property(fget=None, fset=None, fdel=None, doc=None) ``` 这里四个参数,fget表示获取方法,fset表示赋值方法,fdel表示删除属性时调用的方法(使用`del 实例名.属性名`可以删除属性,比较少用),doc表示说明文档,是一个字符串。你可以传入0-4个参数,如果没有传入的参数,表示不允许对那个属性做那样的事。比如传入0个参数,表示该属性既不能读,也不能写;又比如传入1个参数,表示为只读属性。以此类推。 下面我们直接来看一个例子来理解吧。 ```python # 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 | 这个,这一个 |