我知道python中的属性,以及它们如何像以前一样使用class属性,但是在两者之间进行了一些可能的修改。
无论如何,最近做了一些Perl,我开始喜欢这样的想法:更少的代码,将getter和setter结合起来
喜欢:
sub filename {
my $self = shift;
my $filename = shift;
if ($filename){ $self->$filename = $filename;}
else {return $self->$filename;}
}
显然,在perl中,您可以省略方法后面的(),该方法使该方法“更干净”,并且对我的类用户更透明。
在py中,我可以做类似的事情,唯一的缺点是访问时需要使用():
def filename(self, setter=None):
if setter is not None:
self._filename = setter
else:
return self._filename
对我来说,这只是比做属性事情更紧凑的方式,而且我相信我的代码更具可读性。
那么,我的方法有什么问题吗?还是出于某种原因它是单一的?
GCT1015
相关分类