@property和@setter和@getter
以下四种情况:
只读不可写
可写可读
不可写不可读(那你就没必要自己把这个成员变量封装到类里面了吧)
可写不可读(不存在)
所以常见情况其实只有两种.
@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相关推荐
- Python | 在属性的帮助下实现setter和getter
In this program, we are implementing Properties. Python offers a better way to implement setters and ...
- java类的对象无参与有参_java无参与有参以及setter和getter方法(了解)
第一题:分析以下需求,并用代码实现 手机类Phone 属性: 品牌brand 价格price 行为: 打电话call() 发短信sendMessage() 玩游戏playGame() 要求: 1.按照 ...
- 【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
文章目录 一.Java 类成员及 setter 和 getter 方法设置 二.Groovy 类自动生成成员的 getter 和 setter 方法 一.Java 类成员及 setter 和 gett ...
- 玩转Eclipse — 自动生成setter和getter方法
我们在程序开发过程中,往往要编写这样的类:类的部分或者全部属性不希望让外部世界直接访问,而不用public字段修饰.这样,方法调用成了访问这些属性的唯一途径.JavaBean就是一个很好的例子,其严格 ...
- python装饰器 property_python中property和setter装饰器用法
作用:调用方法改为调用对象, 比如 : p.set_name() 改为 p.set_name 区别:前者改变get方法,后者改变set方法 效果图: 代码: class Person: def __i ...
- Objective-C setter和getter
今天主要学习的setter和getter的使用方法, 按照昨天所学习的内容,首先我们要创建一个工程,另外在创建一个Person类! ================================== ...
- 使用Java :: Geci生成setter和getter
在本文中 ,我们创建了非常简单的hello-world生成器,以介绍框架以及通常如何生成生成器. 在本文中,我们将研究访问器生成器,它是在Java :: Geci的核心模块中定义的,它是商业级的,而不 ...
- 计算属性的setter和getter
computed的属性不仅可以写一个get方法,通过其他的值算出一个新值:同时,也可以设置set方法,通过设置一个值,来改变他相关联的值!而改变了相关联的值之后,又会引起fullName的重新计算,页 ...
- java setter与getter方法
//下面代码实现设置和获取学生姓名和成绩.2 class lesson5homework 3 {4 public static void main(String[] args) 5 {6 TestCo ...
最新文章
- Nginx的常用命令
- golang 逐行 读文件
- mysql5.7多实例安装_MySQL数据库5.7多实例安装
- 【读书笔记】 网页关闭确认框
- 中级软件设计师下午试题(百度文库 )
- Unity3D(三)材质
- 关于switch软破“由于发生错误,软件已关闭”无法升级主机系统等问题
- word稿件转化 成html格式后 图片很模糊是什么原因,你保存的word和pdf文档图片为什么变模糊了?...
- 如何在Chrome39添加360抢票王插件
- 移动硬盘坏了数据可以恢复吗?新方法一看便知
- 百度网盘,到底限了谁的速?
- 太白山北坡旅游路线登顶攻略
- r语言做绘制精美pcoa图_科学网—R语言 PCA PCoA ggplot2 - 靳泽星的博文
- Android程序员该如何进阶学习以预防35岁中年职场危机?
- linux线程亲和性,线程亲和性
- atof()函数实现
- 阿里最受追捧的「中高级技术核心」,助我拿下菜网offer,附面经
- import 库、from 库 import 函数、from 库 impor *、import 库 as 别名的区别
- crash linux主要命令,crash分析
- Python爬虫实战:爬取全站小说排行榜
热门文章
- 【Espruino】NO.12 加速度传感器演示
- 边工作边刷题:70天一遍leetcode: day 92
- 编写你自己的单点登录(SSO)服务(转)
- Adobe宣布Flex Builder将更名为Flash Builder
- 一步一步教你抓数据——用.net精确提取网站数据的通用方法 [转]
- (七)Vue 项目规范
- Vue项目实战06:nprogress页面加载进度条
- mysql 日志表设计_在mysql 使用binlog日志
- store内部数据调用 与 view使用store数据
- Vue.JS项目输入框中使用v-model导致number类型值自动转换成string问题的解决方案