首页 » 网站建设 » phpsettergetter技巧_python中的getter和setter你知道吗

phpsettergetter技巧_python中的getter和setter你知道吗

访客 2024-11-30 0

扫一扫用手机浏览

文章目录 [+]

对付一样平常的属性访问或者设置我们用属性操作符就行了,那getter与setter有什么优点呢?优点便是灵巧性高,由于当你访问或者设置某个属性时能实行一段代码,进而可以增加其它业务逻辑。

python中的getter与setter是通过property类来实现的,但实际利用中我们常用装饰器来实现,即@property和 @x.setter。

phpsettergetter技巧_python中的getter和setter你知道吗

为了大略解释问题,我们实现以下例子:当访问或者设置某个属性时打印出正在访问或者设置的属性名字,代码如下:

phpsettergetter技巧_python中的getter和setter你知道吗
(图片来自网络侵删)

class HelloDemo: def __init__(self, hello=None): self._hello = hello @property def hello(self): print("get hello") return self._hello @hello.setter def hello(self, value): print(f"set hello to value: {value}") self._hello = valuedemo = HelloDemo(1) print(f"=====hello is: {demo.hello}=====")demo.hello = 2print(f"=====hello is: {demo.hello}=====")

为了便于区分打印出的内容,我们加了=====和标识作为区分,运行以上代码输出如下:

get hello=====hello is: 1=====set hello to value: 2get hello=====hello is: 2=====

理解了上面的内容后,我们就可以通过这种办法实现一个只读属性,如下:

class HelloDemo: def __init__(self, hello=None): self._hello = hello @property def hello(self): return self._hello @hello.setter def hello(self, value): raise ValueError("can't set read only field")demo = HelloDemo(1) print(f"=====hello is: {demo.hello}=====")demo.hello = 2print(f"=====hello is: {demo.hello}=====")

上面代码由于修正hello属性,运行时就会抛出非常,如下:

=====hello is: 1=====Traceback (most recent call last): File "test.py", line 15, in <module> demo.hello = 2 File "test.py", line 11, in hello raise ValueError("can't set read only field")

这里我们只是解释了用法,详细的利用场景还是须要你去挖掘的,你学会了吗?如果有问题欢迎评论互换!

标签:

相关文章

丹东,东北亚地区的重要门户与活力城市

丹东,这座位于中国东北边境的城市,拥有着得天独厚的地理位置和丰富的历史文化底蕴。作为东北亚地区的重要门户,丹东不仅是中国对外开放的...

网站建设 2024-12-23 阅读0 评论0

中文在JSP技术中的应用与发展

随着互联网技术的飞速发展,中文在Web开发中的应用日益广泛。JSP(JavaServer Pages)作为Java平台下的服务器端...

网站建设 2024-12-23 阅读0 评论0

乐陵网站建设,打造企业品牌新阵地

随着互联网的快速发展,网络已经成为企业展示形象、拓展市场的重要平台。乐陵,这座历史悠久的城市,正借助网站建设这股潮流,打造企业品牌...

网站建设 2024-12-23 阅读0 评论0

乐巍大数据,推动智慧城市建设的引擎力量

近年来,随着科技的飞速发展,大数据逐渐成为各行各业的重要驱动力。在我国,大数据产业得到了国家政策的扶持,市场规模不断扩大。其中,乐...

网站建设 2024-12-23 阅读0 评论0

东台网站建设,助力企业发展新引擎

随着互联网技术的飞速发展,网站已成为企业展示形象、拓展市场、提升品牌影响力的关键途径。东台作为我国江苏省的一个沿海城市,近年来在网...

网站建设 2024-12-23 阅读0 评论0