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