zoukankan      html  css  js  c++  java
  • python @property 属性

         在绑定属性时,如果我们直接把属性暴露出去,显然不合适,是通过getter和setter方法来实现的,还可以定义只读属性,只定义getter方法,不定义setter方法就是一个只读属性:

    class Person(object):

      def __init__(self,name,sex,age,blood):
        self.name = name
        self.sex = sex
        self.age = age
        self._blood = blood

      #只读属性
      @property
      def name(self):
        return self._name


      #可写属性
      @name.setter
      def name(self,tname):
        self._name =tname

      #只读属性
      @property
      def sex(self):
        return self._sex


      #可写属性
      @sex.setter
      def sex(self,sex):
        if sex !='男' and sex !='女':
          raise ValueError('sex must be 男 or 女')
        self._sex =sex

      #只读属性
      @property
      def age(self):
        return self._age

      #可写属性
      @age.setter
      def age(self, age):
        if not isinstance(age, int):
          raise ValueError('age must be an integer!')
        if age < 0 or age > 100:
          raise ValueError('age must between 0 ~ 100!')
        self._age = age

      #只读属性
      @property
      def blood(self):
          return self._blood

      上面的blood是只读写属性,其它的name,sex,age都是可读可写属性。

        @property 广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性

  • 相关阅读:
    ReportingServices报表管理器实现订阅
    sharepoint部署
    在sharepoint工程中添加引用
    asp:DropDownList选择事件出错
    ETL项目
    javascript refresh page 刷新页面的几种方法(转)
    innerHtml 和 innerText用法:(转载)
    用JavaScript隐藏控件的方法(转)
    JS中onpropertychange事件和onchange事件区别
    Window 对象
  • 原文地址:https://www.cnblogs.com/shaosks/p/5626045.html
Copyright © 2011-2022 走看看