zoukankan      html  css  js  c++  java
  • 创建可管理的属性:property

     1 class Person:
     2     def __init__(self, first_name):
     3         self.first_name = first_name
     4 
     5     @property
     6     def first_name(self):
     7         return self._first_name
     8     @first_name.setter
     9     def first_name(self, value):
    10         if not isinstance(value, str):
    11             '''返回对象是否是类或子类的实例'''
    12             raise TypeError('Expected a string')
    13         self._first_name = value
    14     @first_name.deleter
    15     def first_name(self):
    16         raise AttributeError('Can not delaete attribute')
    17 #方法分析: 在实现一个property 时候,数据也要储存在一个地方,self._first_name实际保存数据的地方,
    而不是self.first_name ,在这个列子中,我们创建了一个property的目的就是在设置属性(attribute)的时候进行检查,
    通过设置self.first_name,会自动调用@first_name.setter方法, 进行数据检查,否则返回self.first_name
    18 19 a = Person('Guido') 20 print(a.first_name) 21 # a.first_name = 245 #报错 修改不是字符串 22 a.first_name = 'lwx' #修改 23 # del a.first_name #报错
  • 相关阅读:
    WebService相关
    远程连接db2数据库
    修改VNC分辨率大小
    java面向对象的核心思想
    小故障排查
    使用IntelliJ IDEA开发java web
    WebService概述
    Qt开发之信号槽机制
    用SoapUI 测试Web Service
    剑指offer:滑动窗口的最大值
  • 原文地址:https://www.cnblogs.com/leiwenxuan/p/9551087.html
Copyright © 2011-2022 走看看