python中的getter与setter你了解吗


Posted in Python onMarch 24, 2022

前言

因为java开发的习惯,想要在python开发中使用类似JavaBean的结构。

复制型编写

在python可以直接结合java中的编写习惯编写getter和setter方法。下方是一个示例:

class  DataBean:
	"""bean类"""
	def __init__(self):
		"""构造方法"""
		self.username: str = ""
		self.password: str = ""
	def set_username(self, username: str):
		"""设置用户名"""
		self.username = username
	def set_password(self, password: str):
		"""设置密码"""
		self.password = password
	def get_username(self):
		"""获取用户名"""
		return self.username
	def get_password(self):
		""""获取密码"""
		return self.password

这是结合java的习惯与python类的使用写出的getter和setter结构,当然也可以完全按照java中的写法,参考下方示例:

class  DataBean:
	"""bean类"""
	# 用户名
	username: str = ""
	# 密码
	password: str = ""
	def set_username(self, username: str):
		"""设置用户名"""
		self.username = username
	def set_password(self, password: str):
		"""设置密码"""
		self.password = password
	def get_username(self):
		"""获取用户名"""
		return self.username
	def get_password(self):
		""""获取密码"""
		return self.password

其实就是将构造方法中通过self定义的变量提取出来,效果是一致的。

使用python的装饰器

在python内置的装饰器中,@property和@XXX.setter是针对于getter和setter方法的不二之选。

当一个方法(函数)的最终目的是返回一个值时,可以@property装饰该方法(因为java的使用习惯,我更想称之为注解),这样就可以达成getter方法。

当在一个方法的上方使用XXX.setter装饰时,代表可以直接通过类实例对象名称.变量名为其变量赋值,其中XXX代表变量名同时也是方法(函数)名称,具体可以看下方示例:

class  DataBean:
	"""bean类"""
	# 替代setter方法
	@username.setter
	def username(self, username: str):
		"""设置用户名"""
		self.username = username
	@password.setter
	def password(self, password: str):
		"""设置密码"""
		self.password = password
	# 替代getter方法
	@property
	def username(self):
		"""获取用户名"""
		return self.username
	@property
	def password(self):
		""""获取密码"""
		return self.password
# 测试
data_bean = DataBean()
# 直接赋值
date_bean.username = "123"
print(data_bean.username)

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Python 相关文章推荐
python统计日志ip访问数的方法
Jul 06 Python
整理Python 常用string函数(收藏)
May 30 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
Django项目中使用JWT的实现代码
Nov 04 Python
Python运行DLL文件的方法
Jan 17 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Python urllib库如何添加headers过程解析
Oct 05 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 #Python
pandas进行数据输入和输出的方法详解
Mar 23 #Python
基于Python编写简易版的天天跑酷游戏的示例代码
Python中的嵌套循环详情
Mar 23 #Python
python装饰器代码解析
Mar 23 #Python
基于Python实现将列表数据生成折线图
Python必备技巧之字符数据操作详解
You might like
php调用KyotoTycoon简单实例
2015/04/02 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
Javascript复制实例详解
2016/01/28 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python numpy数组转置与轴变换
2019/11/15 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
教学质量评估实施方案
2014/03/17 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
七一党日活动总结
2014/07/08 职场文书
护士自荐信怎么写
2015/03/06 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技