首页 > 其他 > 详细

property

时间:2019-11-27 19:52:49      阅读:74      评论:0      收藏:0      [点我收藏+]

property

1.什么是property?

  是一个python内置的装饰器,可以装饰在“类内部的方法”上。

  可以将该方法调用方式有----->对象.方法()----->对象.方法

2.为什么用property?

  ps:在某些场景下,调用的方法知识用来获取计算后的某种值。

  ps:必须通过 对象.方法()方式调用,让该方法看起来像动词

 

  让名词的方法,调用时更为合理。

  目的是为了迷惑调用者,调用的方法误以为是属性

3.如何用?

# 需求: 计算人体 bmi 指数
# 体重 / 身高的平方
# value = weight / (height * height)
class User:
    def __init__(self, name, weight, height):
        self.__name = name
        self.weight = weight
        self.height = height

    # 获取bmi指数方法
    @property
    def bmi(self):
        # return self.weight / (self.height * self.height)
        return self.weight / (self.height ** 2)


    @property
    def name(self):
        return self.__name

    # 了解: 设置被property装饰后的方法
    # 注意: 需要修改的方法名字要与被property装饰器后的方法一样
    @name.setter
    def name(self, value):  # ‘赵shuai兵‘ --- 》 value
        self.__name = value

    @name.deleter
    def name(self):  # 删除属性
        del self.__name


user_obj = User(HCY, 100, 1.9)

user_obj.bmi()()
print(user_obj.bmi())


# user_obj.bmi()
print(user_obj.bmi)

# 报错
# user_obj.bmi() = 29
# user_obj.bmi = 29

# print(user_obj.name())
# print(user_obj.name)

# 修改属性
# user_obj.name = ‘zhaoshuaibing‘
#
# print(user_obj.name)


# 删除属性
# del user_obj.name
# print(user_obj.name)

 

property

原文:https://www.cnblogs.com/lvguchujiu/p/11944565.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!