前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的@property作用

python中的@property作用

作者头像
用户7886150
修改2021-01-27 15:23:35
6900
修改2021-01-27 15:23:35
举报
文章被收录于专栏:bit哲学院

参考链接: Python property()

1、为什么要使用property这个单词 

我们首先来分析一下为什么但是龟哥会用property这个单词,而不用foo,bar这样的单词呢,想必一定有他的想法。 通过谷歌翻译查到,property的意思是属性。 

 property ——> 属性 

虽然我们不能猜测出(当然我不提倡乱猜)它的具体意思,但是我们可能应该想到,被他修饰的应该和属性的意思有些许联系的。 

2、具体分析 

我们知道人的身高和臂长大致呈1:1的关系,现在我们想通过一个人的身高求得一个人臂长,可以像下面的方法或得 方法一 

class Person(object):

    def __init__(self):

        self.height = 175

    def arm_length(self):

        return self.height

person = Person()

person.arm_length()

其实臂长也可以算是我们属性一部分,**person.arm_length()**这样的获取臂长的方式会不会觉得很别扭呢(通过方法获得一个属性值),下面我们来尝试使用property来获得 方法二 

class Person(object):

    def __init__(self):

        self.height = 175

    @property  

    def arm_length(self):

        return self.height

person = Person()

person.arm_length

具体分析 我们是不是感觉方法二会更专业一些呢。其实,还有一个原因就是,方法一中通过方法的形式获取属性,我们就会想,是方法就想这个方法需不需要参数的问题。显然通过property很好的解决了这个问题,既然我们可以阅读代码时,一眼就能想到这是一个属性值(或者我们想要的值而已),还很好的避免的传参的问题。 

到这里我们也大概明白了龟哥为什么用property这个单词了吧 

3、使用property的注意点 

被property修饰的方法只有一个参数,self它必须要有返回值

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档