龙空技术网

小白基础讲解:Python 中@property的用法,看完不要再去踩坑了?

程序员陈平安 552

前言:

现在大家对“pythonproperty”大概比较注意,朋友们都想要剖析一些“pythonproperty”的相关资讯。那么小编在网络上搜集了一些有关“pythonproperty””的相关内容,希望你们能喜欢,各位老铁们一起来了解一下吧!

文章内容主要介绍了Python 中@property的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!

在绑定属性时,如果我们直接把属性赋值给对象,比如:

我们先看个详细的例子(注意双下划线name和age定义为私有变量):

输出:

表面上看,外部代码“成功”地设置了__age变量 17,但实际上这个_age变量和class内部的_age变量不是一个变量!

内部的_age变量已经被Python解释器自动改成了_Person_age,而外部代码给p新增了一个_age变量。 所以调用 get_age_fun输出的是初始值 20

而set_age_fun 通过class内部改变了age变量值,所以最终输出 balala: 35

我们再稍微调整下:

(注意只改变了一个变量名: 原来的私有属性 __age 单下划线为: _age,也可以定义为:age.
解释:以一个下划线开头的实例变量名,比如_age,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当看到这样的变量时,意思是,"虽然可以被访问,但是,请视为私有变量,不要随意访问。")

正在学习python的小伙伴或者打算学习的,可以私信小编“07”领取资料

输出:

看的出私有和全局的设置

但是,上面的调用方法是不是略显复杂,没有直接用属性这么直接简单。

有没有可以用类似属性这样简单的方式来访问类的变量呢?必须的,对于类的方法
我们先来看一个稍微改造的例子:(稍后我们再使用Python内置的@property装饰器就是负责把一个方法变成属性调用.)

我们进入正题:看看@property的妙用之处:

输出:

以上就是本文的全部内容,希望对大家的学习有所帮助!!!

结尾

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

标签: #pythonproperty #python的property #pythonproperty函数 #python中property函数