美文网首页
python @property @x.setter @x.de

python @property @x.setter @x.de

作者: 明明就_c565 | 来源:发表于2021-11-10 16:34 被阅读0次

@property可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的。

1》只有@property表示 只读。

2》同时有@property和@x.setter表示 可读可写。

3》同时有@property和@x.setter和@x.deleter表示可读可写可删除。

加了@property后,可以用调用属性的形式来调用方法,后面不需要加()。

方法加入@property后,这个方法相当于一个属性,这个属性可以让用户进行使用,而且用户有没办法随意修改。

————————————————

class Test(object):

def __init__(self):

self.__name =None

    # 下面开始定义属性,3个函数的名字要一样!

    @property  # 可读 实际应用中 比如数据库 创建连接

    def name(self):

return self.__name

@name.setter  # 可写 实际应用中 比如 数据库插入

    def name(self, value):

self.__name = value

@name.deleter  # 可删除 实际应用中 比如做一些数据库 提交 关闭 释放连接等操作

    def name(self):

self.__name =None

    @property  # 可读 实际应用中 比如数据库查询

    def get_name(self):

return self.__name

if __name__ =="__main__":

print(1)

a = Test()

print(a.name)# 读

    a.name ='python'  # 写

    print(a.name)# 读

    print(a.get_name)# 读

    del a.name# 删除

    print(a.name)

参考:

https://zhuanlan.zhihu.com/p/64487092

https://blog.csdn.net/sxingming/article/details/52916249

相关文章

网友评论

      本文标题:python @property @x.setter @x.de

      本文链接:https://www.haomeiwen.com/subject/tjfizltx.html