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实现过滤单个Android程序日志脚本分享
Jan 16 Python
Python中__new__与__init__方法的区别详解
May 04 Python
Python模拟登录验证码(代码简单)
Feb 06 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
Python循环实现n的全排列功能
Sep 16 Python
python进程间通信Queue工作过程详解
Nov 01 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
pytorch的batch normalize使用详解
Jan 15 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 #Python
pandas进行数据输入和输出的方法详解
Mar 23 #Python
基于Python编写简易版的天天跑酷游戏的示例代码
Python中的嵌套循环详情
Mar 23 #Python
python装饰器代码解析
Mar 23 #Python
基于Python实现将列表数据生成折线图
Python必备技巧之字符数据操作详解
You might like
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
form自动提交实例讲解
2017/07/10 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
python自动化测试实例解析
2014/09/28 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
python 下载文件的多种方法汇总
2020/11/17 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
迟到检讨书400字
2014/01/13 职场文书
汉语言文学职业规划
2014/02/14 职场文书
2015年考研复习计划
2015/01/19 职场文书
高一语文教学反思
2016/02/16 职场文书