一个小白对Python的property吐槽之旅

python中有着这样的一个知识的片段:

property,中文翻译过来是属性的意思,一说到属性,自然而然的想到python中的私有属性,共有属性,类属性,对象属性等等,本文的引入是从私有属性开始的,大家都知道,私有的属性本模块中可以放问,但是要想通过对象访问的话,那是不可能的,当然还有别的方法,python的私有属性的原理是当程序初始化的时候,把模块中的私有属性名称给改变,改变按照 _类名__私有属性名称  的规则给改变,所以要想访问私有的属性可以通过get/set的方式来访问,这时候又有这么一个问题,可以不可通过对象给一个变量赋值,然后通过对象访问,小白我当时想:“这个简单啊,现在类中定义该变量为None,然后再通过对象调用和访问就行了,但是property不是这么做的,举个例子:

class Test(object):
    def __init__(self):
        self.__num = 100 #私有的num变量
    def getNum(self):
        return self.__num
    def setNum(self,value):
        self.__num = value
    num = property(getNum,setNum)

if __name__ == '__main__':
    test = Test()
    test.num = 100  #这里会调用set的方法
    print(test.num)  #这里会调用get的方法

以上就是property的一种例子,还有一种修饰器的方法当然就不多说了,小白我到这儿就不仅吐槽了,仅仅是给变量赋值然后再调用的话,搞这么的麻烦的话做什么,直接定义变量就行了。也许你会说,你预先定义这些变量,万一没用到的肯定会造成资源的浪费,在这里我想说,变量这东西不用的话也不需要定义,而且小白还认为,编程就是“用最简单的方式让别人读懂你的意思“,于是写下这篇文章,不求全对,但是无愧,安排~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值