在Python中,使用属性而不是Java风格的getter、setter。所以很少有人能看到...或设置..类的公共接口中的方法。
但是,在属性不合适的情况下,仍然可能以行为类似于getter或setter的方法结束。现在我的问题是:这些方法名应该以get_ / set_开头吗?或者这是不明显的狂热,因为它的含义通常是显而易见的(并且人们仍然可以使用docstring来澄清不明显的情况)?
这可能是个人喜好的问题,但我对大多数人对此的看法感兴趣。作为API用户,您更喜欢什么?
例如:假设我们有一个表示多个城市的对象。可以使用get_city_by_postalcode(postalcode)方法,也可以使用较短的名称city_by_postalcode。我倾向于后者。
发布于 2008-12-17 15:16:04
我觉得越短越好,所以我倾向于选择后者。但重要的是要与你的项目保持一致:不要把这两种方法混在一起。如果你跳到别人的项目中,保留其他开发人员最初选择的内容。
发布于 2008-12-17 16:01:57
您不会失去稍后使用descriptors使您的属性表现得像一个getter/setter的机会。如果希望将属性更改为只读,还可以将其替换为与该属性同名的getter方法,并使用@property对其进行修饰。因此,我的建议是避免使用getter/setter,除非您正在处理的项目已经使用了它们,因为您可以在以后随时改变主意,将属性设置为只读、只写或其他任何形式,而无需修改类的接口。
发布于 2008-12-17 16:35:54
如果它可以用作属性(一个要获取或设置的值,没有其他参数,我通常会这样做:
class Foo(object):
def _get_x(self):
pass
def _set_x(self, value):
pass
x = property(_get_x, _set_x)如果getter/setter比这更复杂,我会使用get_x和set_x:
https://stackoverflow.com/questions/374763
复制相似问题