zoukankan      html  css  js  c++  java
  • @property

    Python内置的@property装饰器就是负责把一个方法变成属性调用的:

    class Screen(object):
         def isint(self,px):
            if not isinstance(px,int):
                 raise ValueError('px must be an int')
            if px<0 :
                 raise ValueError('px must be not a negative number')
       
         @property
         def width(self):
             return self._width
        
         @width.setter
         def width(self,value):
             self.isint(value)
             self._width=value
            
         @property
         def height(self):
             return self._height
        
         @height.setter
         def height(self,value):
             self.isint(value)
             self._height=value
            
         @property
         def resolution(self):
             return self._width * self._height

    @property给一个Screen对象加上widthheight属性,以及一个只读属性resolution

    >>> s=Screen()
    >>> s.width=666
    >>> s.height=888
    >>> print(s.resolution)
    591408
    >>> print('s.width * s.height =%d? ' % s.resolution)
    s.width * s.height =591408?
    >>> print('s.width * s.height =%d  ' % s.resolution)
    s.width * s.height =591408 
    >>>

  • 相关阅读:
    Spring boot 梳理
    Spring boot 梳理
    Spring boot 梳理
    观察者模式
    设计模式原则
    Spring MVC上传文件
    Spring MVC视图解析器
    Spring MVC中Action使用总结
    Spring MVC控制器
    Java并发 两个线程交替执行和死锁
  • 原文地址:https://www.cnblogs.com/bang325/p/7183770.html
Copyright © 2011-2022 走看看