以下四种情况:

只读不可写

可写可读

不可写不可读(那你就没必要自己把这个成员变量封装到类里面了吧)

可写不可读(不存在)

所以常见情况其实只有两种.

@property @xxx.getter @xxx.setter 可写 可读 代码 备注
O X O O O hello1.py  
O X X X O hello2.py  

@property具备@xxx.setter效果,产生可读效果.

这三个装饰器件的效果是:

可读不一定可写

可写的一定可读

#--------------------------------------附录---------------------------------------------------------------

hello1.py

class Rectangle(object):# 服务于返回数值@propertydef width(self):# 变量名不与方法名重复,改为true_width,下同print("@property called")return self.true_width# 服务于设数值@width.setterdef width(self, input_width):print("setter method called")print("input_width=",input_width)self.true_width = input_width
#-----------------------------------------------------------------@propertydef height(self):return self.true_height@height.setter#与property定义的方法名要一致def height(self, input_height):self.true_height = input_height
#-----------------------------------------------------------------
s = Rectangle()
# 与方法名一致
s.width = 1024
s.height = 768print("*********下面是输出区域************")
print("s.width=",s.width)
print("s.true_width=",s.true_width)
print("--------------------")
print(s.height)

hello2.py

class Student(object):
#  服务于返回(可读)@propertydef birth(self):return self._birth# 服务于设数值(可写)@birth.setterdef birth(self, value):self._birth = value
#-----------------------------------------------------------------#  服务于返回(可读)@propertydef age(self):return 2015 - self._birth#-----------------------------------------------------------------s = Student()
# 与方法名一致
s.birth = 1024
# s.age = 768#如果执行此句会报错print("*********下面是输出区域************")
print("s.birth=",s.birth)
print("s.age=",s.age)

@property和@setter和@getter相关推荐

  1. Python | 在属性的帮助下实现setter和getter

    In this program, we are implementing Properties. Python offers a better way to implement setters and ...

  2. java类的对象无参与有参_java无参与有参以及setter和getter方法(了解)

    第一题:分析以下需求,并用代码实现 手机类Phone 属性: 品牌brand 价格price 行为: 打电话call() 发短信sendMessage() 玩游戏playGame() 要求: 1.按照 ...

  3. 【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )

    文章目录 一.Java 类成员及 setter 和 getter 方法设置 二.Groovy 类自动生成成员的 getter 和 setter 方法 一.Java 类成员及 setter 和 gett ...

  4. 玩转Eclipse — 自动生成setter和getter方法

    我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰.这样,方法调用成了访问这些属性的唯一途径.JavaBean就是一个很好的例子,其严格 ...

  5. python装饰器 property_python中property和setter装饰器用法

    作用:调用方法改为调用对象, 比如 : p.set_name() 改为 p.set_name 区别:前者改变get方法,后者改变set方法 效果图: 代码: class Person: def __i ...

  6. Objective-C setter和getter

    今天主要学习的setter和getter的使用方法, 按照昨天所学习的内容,首先我们要创建一个工程,另外在创建一个Person类! ================================== ...

  7. 使用Java :: Geci生成setter和getter

    在本文中 ,我们创建了非常简单的hello-world生成器,以介绍框架以及通常如何生成生成器. 在本文中,我们将研究访问器生成器,它是在Java :: Geci的核心模块中定义的,它是商业级的,而不 ...

  8. 计算属性的setter和getter

    computed的属性不仅可以写一个get方法,通过其他的值算出一个新值:同时,也可以设置set方法,通过设置一个值,来改变他相关联的值!而改变了相关联的值之后,又会引起fullName的重新计算,页 ...

  9. java setter与getter方法

    //下面代码实现设置和获取学生姓名和成绩.2 class lesson5homework 3 {4 public static void main(String[] args) 5 {6 TestCo ...

最新文章

  1. Nginx的常用命令
  2. golang 逐行 读文件
  3. mysql5.7多实例安装_MySQL数据库5.7多实例安装
  4. 【读书笔记】 网页关闭确认框
  5. 中级软件设计师下午试题(百度文库 )
  6. Unity3D(三)材质
  7. 关于switch软破“由于发生错误,软件已关闭”无法升级主机系统等问题
  8. word稿件转化 成html格式后 图片很模糊是什么原因,你保存的word和pdf文档图片为什么变模糊了?...
  9. 如何在Chrome39添加360抢票王插件
  10. 移动硬盘坏了数据可以恢复吗?新方法一看便知
  11. 百度网盘,到底限了谁的速?
  12. 太白山北坡旅游路线登顶攻略
  13. r语言做绘制精美pcoa图_科学网—R语言 PCA PCoA ggplot2 - 靳泽星的博文
  14. Android程序员该如何进阶学习以预防35岁中年职场危机?
  15. linux线程亲和性,线程亲和性
  16. atof()函数实现
  17. 阿里最受追捧的「中高级技术核心」,助我拿下菜网offer,附面经
  18. import 库、from 库 import 函数、from 库 impor *、import 库 as 别名的区别
  19. crash linux主要命令,crash分析
  20. Python爬虫实战:爬取全站小说排行榜

热门文章

  1. 【Espruino】NO.12 加速度传感器演示
  2. 边工作边刷题:70天一遍leetcode: day 92
  3. 编写你自己的单点登录(SSO)服务(转)
  4. Adobe宣布Flex Builder将更名为Flash Builder
  5. 一步一步教你抓数据——用.net精确提取网站数据的通用方法 [转]
  6. (七)Vue 项目规范
  7. Vue项目实战06:nprogress页面加载进度条
  8. mysql 日志表设计_在mysql 使用binlog日志
  9. store内部数据调用 与 view使用store数据
  10. Vue.JS项目输入框中使用v-model导致number类型值自动转换成string问题的解决方案