1

我有几种在构造上变化不大的方法。它们用于设置给定项目(field_name)的(类似linux的)权限。变量oview_perms, gview_perms,aview_perms分别代表 Owner、Group 和 Anonymous 权限。这些变量是不可变的,所以这就是我在返回时设置它们的原因。

也许有一种方法可以简化这一点,但仍然保持易于阅读?

def set_oview_perm(self, field_name, perm):
    self.oview_perms = self._set_field_permission(self.oview_perms, field_name, perm)

def set_gview_perm(self, field_name, perm):
    self.gview_perms = self._set_field_permission(self.gview_perms, field_name, perm)

def set_aview_perm(self, field_name, perm):
    self.aview_perms = self._set_field_permission(self.aview_perms, field_name, perm)

def set_oedit_perm(self, field_name, perm):
    self.oedit_perms = self._set_field_permission(self.oedit_perms, field_name, perm)

def set_gedit_perm(self, field_name, perm):
    self.gedit_perms = self._set_field_permission(self.gedit_perms, field_name, perm)

def set_aedit_perm(self, field_name, perm):
    self.aedit_perms = self._set_field_permission(self.aedit_perms, field_name, perm)
4

1 回答 1

1

像这样的东西?

def set_perm(self, ptype, field_name, perm):
    setattr(self, ptype + '_perm', self._set_field_permission(getattr(self, ptype + '_perm'), field_name, perm))

where ptypeis'gedit''oview'。我没有尝试过,但这应该可以。

于 2013-05-27T19:11:38.067 回答