gpt4 book ai didi

Python 类最佳实践

转载 作者:行者123 更新时间:2023-12-03 05:58:26 25 4
gpt4 key购买 nike

我想知道在Python中使用OPP/类/实例时,在读写类的属性/变量时是否应该始终使用getAttr()/setAttr()。或者直接处理变量/属性(例如 self.my_attr = "some_value")会是更好的做法?

直接访问类属性

class MyClass(object):
def __init__(self):
super(MyClass, self).__init__()
self.my_attr = 'My_Value'

def doSomething(self):
localVariable = self.my_attr
print localVariable

使用类的方法访问类的属性

class MyClass(object):
def __init__(self):
super(MyClass, self).__init__()
self.my_attr = 'My_Value'

def getMyAttr(self):
return self.my_attr

def doSomething(self):
localVariable = self.my_attr
print localVariable

稍后编辑:

在阅读《面向对象的思维过程》一书(Matt Weisfeld:开发人员图书馆)时......作者在书中不断指出:

“...对对象内属性的访问应由对象控制本身 - 任何其他对象都不应直接更改另一个对象的属性......”

“...如果您控制对属性的访问,则当出现问题时,您可以不必担心追踪可能改变了的每一段代码属性——它只能在一处(setter)改变......”

那么我将坚持使用 setter 和 getter。此处建议/提到 Python 的 @property 和 @.setter 使其变得更加容易。

最佳答案

您应该直接访问该变量。

如果您随后需要添加一些逻辑来获取/设置该值,请将其转换为 property .

关于Python 类最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com