<分区>
什么是“Pythonic”?
user.fullname = fullname
user.gender= gender
user.description = description
对比
user.update_profile(fullname, gender, description)
显然,后者在大多数情况下(以及我的偏好)只是前者的包装器,但是我在网上看到所有关于直接访问(使用属性装饰器)如何更 pythonic 的讨论,我只是好奇。
标签 python
<分区>
什么是“Pythonic”?
user.fullname = fullname
user.gender= gender
user.description = description
对比
user.update_profile(fullname, gender, description)
显然,后者在大多数情况下(以及我的偏好)只是前者的包装器,但是我在网上看到所有关于直接访问(使用属性装饰器)如何更 pythonic 的讨论,我只是好奇。
最佳答案
两者都或多或少是 Pythonic 的;他们有不同的用例。
当您希望能够一个一个地更新属性时,请使用前者。在需要时将其替换为属性。但是,当设置属性具有超出验证的副作用时,请务必使用显式方法。
当您必须一次更新所有三个属性时使用后者,例如当您需要对值的组合进行健全性检查时。没有特殊的语法可以合理地替代这个习语。
关于python - 直接属性访问是否比定义的 API 多 "pythonic",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289945/