我知道python中的属性以及它们如何像以前一样使用类属性,但在两者之间进行一些可能的修改。
无论如何,最近做了一些 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
对我来说,这只是比做属性更紧凑,我相信我的代码更具可读性。
那么我的方法有什么问题还是出于某种原因它是单调的?
谢谢!