执行效率问题(对象属性和对象方法)
来源:12-2 计算节点的高度和平衡因子

崔东旭666
2019-11-04
老师,我用的是Python,问的问题跟本节无关,突然想到的:
创建类时,初始化对象属性值,如size;也有方法get_size获得对象size值
问题:
当类里别的方法 需要用到对象的size值,是直接用self._size获得,还是用方法get_size获得呢?建议用哪种方式呢?还是两者都可以呢?两者执行效率呢?
def __init__(self):
self._root = None
self._size = 0
def get_size(self):
return self._size
写回答
1回答
-
效率上没有区别。(即使有细微的区别,对于现代编程来说,不建议做区分。)
在使用上,其实也是都可以的。在类设计内部,我不太关注这一点。但是理论来讲,使用 get_size() 更好。这是因为,使用 get_size(),防止你的逻辑以外更改了 size 变量。而且,万一 get_size() 逻辑发生变化,只需要改 get_size() 就好了。
另外,值得一提的是,因为你在用 Python。Python 的设计模式和 C++, Java 等语言有所区别。一般不靠 getter 方法定义外部只读属性,而有自己的方式。比如这篇文章:https://blog.csdn.net/weixin_35653315/article/details/78077253
继续加油!:)
112019-11-05
相似问题