我曾经是一名java程序员,目前正在转向Python。在Java中,所有函数都是类方法,但我不确定Python中的情况。如果我定义了一个队列并想知道队列的大小,什么是最佳设计?
-
定义变量__size,并定义方法size()
-
使用方法大小的@property使__size成为只读
-
简单定义可变自尺寸
我的问题实际上集中在Python的编码风格上,是让一切都成为方法还是使用私有变量。使用@property getters&每个变量的setter?
我同意Eli的链接,因为通常getter和setter是额外的cruft。
但是在这种特殊情况下,您应该定义一个__len__()
方法,该方法将返回队列的当前大小,允许您使用len(<obj>)
内建函数来检索长度。除其他外,它将允许您轻松地获得一个布尔值,以确定您的队列是否为空。
Python的方法就是拥有一个属性。如果以后碰巧需要该属性后面的更多功能,则可以始终使用@property
装饰器。
阅读此以了解更多详细信息:http://eli.thegreenplace.net/2009/02/06/getters-and-setters-in-python/