python属性样式

时间:2012-02-13 06:08:38

标签: python properties styles

我曾经是一名java程序员,现在正在改用Python。 在Java中,所有函数都是类方法,但我不确定Python中的情况。 如果我定义一个队列并想知道队列的大小,那么最好的设计是什么?

  1. 定义变量__size,并定义方法大小()

  2. 在方法大小上使用@property使__size只读

  3. 只需定义变量self.size

  4. 即可

    我的问题主要集中在Python的编码风格上,无论是制作所有方法还是使用私有变量。 是否更喜欢使用@property getters&每个变量的setter?

2 个答案:

答案 0 :(得分:3)

我同意Eli的联系,因为通常情况下,吸气剂和制定者都是非常残忍的。

但是,在这种特殊情况下,您应该定义一个__len__()方法,该方法将返回您队列的当前大小,允许您使用len(<obj>)内置来检索长度。除此之外,它还允许您轻松获取布尔值以确定您的队列是否为空。

答案 1 :(得分:2)

Pythonic方法只是拥有一个属性。如果您以后碰巧需要该属性背后的更多功能,则可以始终使用@property装饰器。

阅读本文了解更多详情:http://eli.thegreenplace.net/2009/02/06/getters-and-setters-in-python/