python怎么存储数据_Python:如何在类中存储数据并继承

我对课程很陌生,我已经写了一个班来做熊猫的操作。

@分类方法

,但我不知道如何使用它们。

我的班级目标:

我想写一个权限类。它应该加载/写入一个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}}]}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse手动配置svn

1、在Eclipse根目录下建一个任意文件夹(如plugin),在该文件夹下建一个以该插件名命名的文件夹(如SVN)。2、将下载下的插件文件解压,plugins和features文件夹复制到该文件夹下(SVN)。…

java爬虫新浪微博_java爬虫(爬新浪新闻) 如何从零开始

爬虫通常搜索引擎处理的对象是互联网网页。首先面临的问题是:如何能够设计出高效的下载系统,以将如此海量的网页数据传送到本地,在本地形成互联网网页的镜像备份。网络爬虫即起此作用,它是搜索引擎系统中很关键也很基础的构件。爬…

Hibernate Query 的 list 和iterate方法缓存的区别

list: quert.list()方法会将从数据库查找到的数据库放到一级缓存和二级缓存,但是不能从一级和二级缓存读取数据,但是可以从二级缓存的查询缓存读取数据, iterate: quert.iterate()方法总会先查找数据表的主键,然后根据每一个主键发送对应的sql语句从数据库读取数据,它可以把数据…

java的type转化class_第七章 (类型转换)Type Convertion

第七章 Type Convertion为什么会有类型转换?HTTP协议中传递的任何内容都是String类型的,所以一旦我们在服务器上需要一个非String类型的对象,例如:int或者Date,那么我们就需要在收到HTTP请求的数据的时候,首…

CodeVS 1068-乌龟棋

原题 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋…

java游戏暂停弹出字体_小白写了个java的小游戏 想加个暂停的功能 无从下手 求大佬们帮...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼第一次写java的小游戏想实现点击右下角的暂停 实现游戏的暂停和继续 不知道该怎么加,自己找了线程的内容但试了还是成功不了,求大佬们帮一下小白。代码有点乱,大佬们见谅。,&#xff…

乔布斯传

资料参考 http://www.ruanyifeng.com/blog/2013/03/apple_inc_and_division_of_labor.html 苹果公司与分工原理 1.乔布斯 "乔布斯买了一间不错的房子,但家里只有一幅帕黎思(Maxfield Parrish)的画作、一部百灵牌咖啡机和几把双人牌的刀子…

JAVA5000行代码什么概念_GitHub - catstiger/mvc: 一个不超过5000行代码的,快速,简单,易用的MVC框架。...

一个不超过5000行代码的,快速,简单,易用的MVC框架。我们的目的是:让MVC回归其最初的目的。因简单而快速,超过目前各种主流MVC。零侵入,零配置,易于测试,并且让开发者感觉不到MVC的存…

33 Java语言基础控制跳转语句标号

1 public class Add9 {2 public static void main(String[] args) {3 4 a:for (int i 1; i <9 ; i) { // 标号为合法的标识符5 System.out.println("\n");6 b:for (int j 1; j <i ; j) {7 8 System.o…

java 配置jmstemplate_Spring JMSTemplate 与 JMS 原生API比较

JMSUtil与Spring JmsTemplate的对比Author&#xff1a;信仰Date&#xff1a;2012-4-20未完待续&#xff0c;截止日期2012-4-20从以下几方面比较JMSUtil和Spring JmsTemplatel 对JNDI的支持l 对ConnectionFactory、Connection、Destination、Session、MessageProducer、Messag…

java微信支付必要参数_微信支付 开发账号体系各参数详解

商户在微信公众平台提交申请资料以及银行账户资料&#xff0c;资料审核通过并签约后&#xff0c;可以获得表6-4所示帐户(包含财付通的相关支付资金账户)&#xff0c;用于公众帐号支付。帐号及作用&#xff1a;appid &#xff1a;公众帐号身份的唯一标识。审核通过后&#xff0c…

MyEclipse10的正确破解方法

无法转载&#xff0c;故给出原文链接&#xff0c;以供需要者。 MyEclipse10的正确破解方法转载于:https://www.cnblogs.com/qbzf-Blog/p/6341400.html

【二分法】- leetcode

275. H-Index II 278. First Bad Version 此题的条件必须是left < right, 否则如果只有一个版本的话&#xff0c;一直跳不出循环&#xff0c; time limitation。转载于:https://www.cnblogs.com/93scarlett/p/6353765.html

mysql referential_constraints_hibernate4.3.8与spring mvc结合遇到的问题

2703 [2015-01-21 16:47:42 ] - [ip, ref, ua, sid]WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 1109, SQLState: 42S022703 [2015-01-21 16:47:42 ] - [ip, ref, ua, sid]ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Unknown table ‘referential_constraints‘ in …

ie11浏览器可以下载java吗_解析:WindowsXP系统能否安装IE11浏览器

现在&#xff0c;IE浏览器可以称得上是市场占有率最高的一款网页浏览器。因为windowsxp是一款比较久的操作系统&#xff0c;所以很多用户都会疑惑在xp上是否能够安装最新版的ie11浏览器。下面&#xff0c;小编就给大家详细解答下该问题。很遗憾的告诉大家&#xff0c;Windows X…

centos uninstall teamviewer11

由于某些原因&#xff0c;centos系统上的teamviewer不能运行。一直没有管它&#xff08;懒&#xff09;。 但是&#xff0c;突然看不下去了。因为每次开机后都自动启动&#xff0c;需要关闭&#xff0c;否则有问题。所以&#xff0c;uninstall。 尝试了很多都失败。尝试的步骤是…

java ajax传输图片_Java使用Ajax实现跨域上传图片功能

说明 &#xff1a;图片服务器是用Nginx搭建的&#xff0c;用的是PHP语言这个功能 需要 用到两个js文件&#xff1a;jquery.js和jQuery.form.jsfunction submitImgSize1Upload() {var postData function( form , callback){var form document.getElementById("upload-for…

opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度

问题如何调整彩色图像的饱和度和亮度解决思路详细步骤&#xff1a;将RGB图像值归一化到[0, 1]然后使用函数cvtColor进行色彩空间的转换接下来可以根据处理灰度图像对比度增强伽马变换或者线性变换调整饱和度和亮度分量最后转换到RGB色彩空间代码# !/usr/bin/env python# -*-enc…

Java并发——线程中断学习

1. 使用interrupt()中断线程当一个线程运行时&#xff0c;另一个线程可以调用对应的Thread对象的interrupt()方法来中断它&#xff0c;该方法只是在目标线程中设置一个标志&#xff0c;表示它已经被中断&#xff0c;并立即返回。这里需要注意的是&#xff0c;如果只是单纯的调用…

python etree创建xml_Python构建XML树结构的实例教程

这篇文章主要介绍了Python构建XML树结构的方法,结合实例形式分析了Python创建与打印xml数结构的实现步骤与相关操作技巧,需要的朋友可以参考下本文实例讲述了Python构建XML树结构的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1.构建XML元素#encodingutf-8from…