在Python中避免实现getter函数是不好的做法?

srk*_*ish 0 python

我正在研究一个Python项目,因为可以通过指定class.variablename直接访问实例变量名,所以我想知道是否建议实现相同的getter函数.我没有将变量声明为私有.

kin*_*all 10

在Java等语言中,如果要在获取或设置属性时添加其他处理(例如值验证,访问控制或日志记录),则需要实现getter和setter,以便不需要更改类的接口.如果您的类将由您未编写的应用程序使用,这一点尤其重要.

在Python中,您可以在@property不更改界面的情况下向属性添加代码,因此您应该这样做.使用常规属性访问启动,@property如果需要添加行为,请稍后添加.

即使这样,也要保持你的getter和setter函数的简单.预计属性访问速度相当快,您应该避免违反该期望.如果您需要做大量的工作来获取值,那么方法是合适的,但要给它一个描述性的名称:calculateFoo()而不是getFoo(),例如.