10、property

成人的BMI数值:
过轻:低于18.5
正常:18.5-23.9
过重:24-27
肥胖:28-32
非常肥胖, 高于32
  体质指数(BMI)=体重(kg)÷身高^2(m)
  EX:70kg÷(1.75×1.75)=22.86
# property装饰器就是将一个函数属性伪装成一个数据属性
# class People:
#     def __init__(self,name,weight,height):
#         self.name=name
#         self.weight=weight
#         self.height=height
#
#     @property
#     def bmi(self):
#         return self.weight / (self.height ** 2)
#
#
# obj=People('egon',80,1.83)
# # print(obj.bmi())
#
# print(obj.bmi)

# 了解
# class People:
#     def __init__(self,name):
#         self.__name=name
#
#     @property
#     def name(self):
#         return self.__name
#
#     @name.setter
#     def name(self,obj):
#         if type(obj) is not str:
#             print('名字必须是str类型')
#             return
#         self.__name=obj
#
#     @name.deleter
#     def name(self):
#         # print('不让删')
#         del self.__name
#
# obj=People('egon')
# # print(obj.name)
#
# # obj.name='EGON'
# # obj.name=123
# # print(obj.name)
#
# del obj.name
# print(obj.name)




class People:
    def __init__(self,name):
        self.__name=name

    def get_name(self):
        return self.__name

    def set_name(self,obj):
        if type(obj) is not str:
            print('名字必须是str类型')
            return
        self.__name=obj

    def del_name(self):
        # print('不让删')
        del self.__name

    name=property(get_name,set_name,del_name)

obj=People('egon')
print(obj.name)

# obj.name='EGON'
# obj.name=123
# print(obj.name)

# del obj.name
# print(obj.name)

 

posted @ 2018-11-30 23:49  Operater  阅读(122)  评论(0编辑  收藏  举报