我有几种方法在构造方面变化很小。它们用于在给定项目(field_name)上设置(类似Linux)权限。变量oview_perms
,gview_perms
,aview_perms
分别代表所有者,组和匿名权限。这些变量是不可变的,所以这就是我在返回时设置它们的原因。
也许有一种方法可以简化这一点,但仍然可以轻松阅读?
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)
答案 0 :(得分:1)
这样的东西?
def set_perm(self, ptype, field_name, perm):
setattr(self, ptype + '_perm', self._set_field_permission(getattr(self, ptype + '_perm'), field_name, perm))
其中ptype
是'gedit'
,'oview'
等。我没有尝试过,但这应该有效。