码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象:属性

时间:2019-10-14 23:36:50      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:span   turn   set   init   prope   family   属性   color   size   

# 属性的初识
  属性: 将方法伪装成一个属性,代码上没有什么提升,只是更合理.
    @property ***
    @属性名.setter **
    @属性名.deleter *
class Person:

    def __init__(self,name,hight,weight):
        self.name = name
        self.__hight = hight
        self.__weight = weight

    @property
    def bmi(self):
        return %s 的bmi 值%s %(self.name,self.__weight / self.__hight ** 2)

p1 = Person(大阳哥,1.68,70)
# print(p1.bmi())
print(p1.bmi)
# 属性  : 将一个方法  伪装成一个 属性,在代码的级别上没有本质的提升,但是让其看起来跟合理.
print(p1.name)
p1.name = alex
print(p1.name)
# 属性的改
class Person:
    def __init__(self,name,age):
        self.name = name
        if type(age) is int:
            self.__age = age
        else:
            print( 你输入的年龄的类型有误,请输入数字)
    @property
    def age(self):
        return self.__age

    @age.setter
    def age(self,a1):
        ‘‘‘判断,你修改的年龄必须是数字‘‘‘
        if type(a1) is int:
            self.__age = a1
        else:
            print(你输入的年龄的类型有误,请输入数字)

    @age.deleter
    def age(self):
        del self.__age

p1 = Person(帅哥,20)
print(p1.age)
print(p1.__dict__)
p1.age = 23
print(p1.age)
del p1.age
print(p1.__dict__)

20
{‘name‘: ‘帅哥‘, ‘_Person__age‘: 20}
23
{‘name‘: ‘帅哥‘}

# property : 类似于bmi这种,area,周长....  ***
# @age.setter **
# @age.deleter *

面向对象:属性

标签:span   turn   set   init   prope   family   属性   color   size   

原文地址:https://www.cnblogs.com/skydragon/p/11674771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!