我对课程很陌生,我已经写了一个班来做熊猫的操作。
@分类方法
,但我不知道如何使用它们。
我的班级目标:
我想写一个权限类。它应该加载/写入一个json文件,并且应该能够添加更多的权限。
编辑:
读了一段时间后,我发现
staticmethod
还有一个
__init__
在初始化期间加载文件的。
class Permission:
data = None
def __init__(self, path):
if Permission.data is None:
self.read_permissions(path)
@staticmethod
def read_permissions(path):
try:
with open(path, 'r') as read_file:
Permission.data = json.load(read_file)
except FileNotFoundError as e:
logging.error(e)
sys.exit(1)
def add_permissions(self, group, level, permissions):
self.data['groups'].append({
'group': group,
'level': level,
'permissions': permissions
})
所以我可以像这样使用这个类:
json_path = 'C:\\data\\test.json'
test_perm = Permission(json_path)
print(test_perm.data)
{'groups': [{'group': 'common', 'permissions': {'select_sample_x': True, 'select_sample_y': True, 'assign_x': False, 'request_y': True}}]}
test_perm.add_permissions('guys', 10, {'can_do_icecream': False, 'can_do_nothing': True})
print(test_perm.data)
{'groups': [{'group': 'pkf_common', 'permissions': {'select_sample_debitor': True, 'select_sample_creditor': True, 'assign_third_party_confirmation': False, 'request_reporting': True}}, {'group': 'guys', 'level': 10, 'permissions': {'can_do_icecream': False, 'can_do_nothing': True}}]}