Python中的property标签属性是一种特殊的装饰器,它可以将一个方法转换为属性调用,这样可以在不改变类的接口的情况下,增加或修改类的方法,property标签属性的主要作用是实现数据的封装和隐藏,提高代码的可读性和可维护性。
1、定义一个类,并在其中定义一个方法作为属性的getter方法。
class Person: def __init__(self, name, age): self._name = name self._age = age @property def name(self): return self._name
2、在类外部访问属性时,可以直接通过属性名进行访问。
p = Person("张三", 18) print(p.name) 输出:张三
3、也可以通过getter方法获取属性值。
print(p.name) 输出:张三
4、如果需要设置属性值,可以使用setter方法。
p.name = "李四" print(p.name) 输出:李四
1、在类中定义一个方法,并在方法前加上@property装饰器。
class Circle: def __init__(self, radius): self._radius = radius @property def radius(self): return self._radius * 2
2、在类外部访问属性时,可以直接通过属性名进行访问,此时,该方法已经被转换为属性调用。
c = Circle(5) print(c.radius) 输出:20
3、也可以通过getter方法获取属性值,此时,该方法已经被转换为属性调用。
print(c.radius) 输出:20
4、如果需要设置属性值,可以使用setter方法,此时,该方法已经被转换为属性调用。
c.radius = 10 print(c.radius) 输出:20 (因为半径已经乘以2)
1、在类中定义一个方法,并在方法前加上@property装饰器,在该方法中返回另一个方法的结果,这样,多个属性就可以共享同一个getter和setter方法。
class Circle: def __init__(self, radius): self._radius = radius self._area = None self._circumference = None self.update() 初始化面积和周长为None,然后调用update方法更新它们 def update(self): import math as mtm self._area = mtm.pi * self._radius * self._radius self._circumference = mtm.pi * self._radius * 2
2、在类外部访问属性时,可以直接通过属性名进行访问,此时,该属性会调用对应的getter方法,如果需要设置属性值,可以使用setter方法,此时,该属性会调用对应的setter方法,注意,当设置面积或周长时,会自动更新半径。
c = Circle(5) c的面积为78.53981633974483,周长为31.41592653589793 (根据Python版本和环境可能会有细微差别) print(c.area) 输出:78.53981633974483 (根据Python版本和环境可能会有细微差别) print(c.circumference) 输出:31.41592653589793 (根据Python版本和环境可能会有细微差别) c.area = 100 c的面积被设置为250 (根据Python版本和环境可能会有细微差别),半径也被自动更新为25 (根据Python版本和环境可能会有细微差别) print(c.area) 输出:250 (根据Python版本和环境可能会有细微差别)
文章题目:python的property属性
地址分享:http://www.mswzjz.cn/qtweb/news11/374711.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能