python - 为什么 Python 有 @property 装饰器时有 __set__ / __get__ 和 __setattr__ / __getattr__?
问题描述
我是 Python 新手,并试图了解 Python OOP。
在 Python 中获取/设置属性的“正确”方法似乎是使用 @property 和 @propertyname.setter 装饰器。
虽然我了解@property 和@propertyname.setter 的使用,但 and 的存在__set__ / __get__
让__setattr__ / __getattr__
我感到困惑。如果它们不应该被使用,为什么它们甚至存在?
我仍然无法弄清楚为什么有两对,而不仅仅是一对__set__ / __get__
。
最后,我们是使用装饰器@property 还是使用方法Property()?Property() 方法需要一个传递对应于属性的getter、setter和deleter的方法
解决方案
推荐阅读
- clang-tidy - clang-tidy 配置中没有等效的`-line-filter`?
- typescript - Cypress - Typescript - 我怎样才能使我的夹具变量全局化?
- cassandra - 将 Cadence 连接到 Azure Cosmo Cassandra API
- r - 如何在r中绘制两个正镜像条形图?
- flutter - 如何在 ThemeData 中实现 TextTheme
- android - Ktlint 与 lint 的区别?
- python - model.fit() 在 Keras 中给了我 'KeyError: input_1'
- python - 使用 python 构建本地数据库并且由于“关键错误”而无法继续(下面的完整代码)
- git - git 确保提交被完全推送
- c++ - Leetcode 987:二叉树的垂直顺序遍历:为什么我得到 TLE?