zoukankan      html  css  js  c++  java
  • Python3的特性property(1)

     1 # 特性Property
     2 class Rectangle:
     3     def __init__(self):
     4         self.width = 0
     5         self.height = 0
     6     
     7     def set_size(self,size):
     8         self.width, self.height = size
     9     
    10     def get_size(self,size):
    11         return self.width, self.height
    12     
    13     # 注意:获取方法在前,设置方法在后
    14     size = property(get_size,set_size)

    通过调用函数property并将存取方法作为参数(获取方法在前,设置方法在后)创建一个特性,然后将名称size关联到这个特性。

    这样,就能以同样的方式对待width、height和size,而无需关心它们是如何实现的。

    1 r = Rectangle()
    2 r.width = 10
    3 r.height = 5
    4 print(r.size)
    5 
    6 r.size = 150,100
    7 print(r.width, r.height)

    输出:

    (10, 5)
    150 100

    实际上,调用函数property时,还可不指定参数、指定一个参数、指定三个参数或指定四个参数。

    参数名分别为:fget  fset  fdel  doc

    (1)没有指定任何参数:

    创建的特性将既不可读也不可写;

    (2)只指定一个参数(获取方法get):

    创建的特性将是只读的;

    (3)第三个参数是可选的:

    指定用于删除属性的方法(这个方法将不接受任何参数);

    (4)第四个参数是可选的:

    指定一个文档字符串

  • 相关阅读:
    微信发送模板消息
    主从复制 读写分离
    php nginx反向代理
    go开发工具goclipse的安装
    安装go1.11.2
    基于科大讯飞AIUI平台自定义语义库的开发
    转载--php 7.2 安装 mcrypt 扩展
    mysql取出字段数据的精度
    sublime 2 格式化json
    RESTful接口需知道
  • 原文地址:https://www.cnblogs.com/gepu1991/p/9135643.html
Copyright © 2011-2022 走看看