python中将普通对象作为 字典类(dict) 使用

目前我知道的有两种方法:

1 定义的类继承dict类

例如

class A(dict): pass

a = A()

a[‘name‘] = 12

2 给自定义的类添加

__setitem__() __getitem__()方法

class A:
	def __init__(self, cfg={}):
		<strong><span style="color:#ff0000;">self.cfg = cfg</span></strong>
	def __setitem__(self, key, value):
		<span style="color:#ff0000;">self.cfg[key] = value</span>
	def __getitem__(self, key):
		<span style="color:#ff0000;">return self.cfg[key]</span>
a = A()
a['b'] = 2
print(a['b'])

输出:

2
[Finished in 0.0s]

也就是给类添加个字典类对象,将 key,value 存储到这个里面。

通过这两种方法我们都可以将普通对象像 字典类对象一样使用。

第二种方法是在学习 tkinter时发现这种用法的,在网上没搜到方法,看其源码找到的这个方法。

时间: 2024-10-14 14:23:25

python中将普通对象作为 字典类(dict) 使用的相关文章

[转载]python中将普通对象作为 字典类(dict) 使用

目前我知道的有两种方法: 1 定义的类继承dict类 例如 class A(dict): pass a = A() a['name'] = 12 2 给自定义的类添加 __setitem__() __getitem__()方法 class A: def __init__(self, cfg={}): self.cfg = cfg def __setitem__(self, key, value): self.cfg[key] = value def __getitem__(self, key):

Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 注意点: self ,我们讲过了,self = 对象,实例化后的对象调用类的各种成员的时候的self就是这个对象. 而且我们也讲过了

8.python之面相对象part.9(初识元类part.1)

初步认识元类 #本篇文章介绍的元类,以及type以python3以上版本为准. 一.关于元类的前言. 在python中,一切皆对象,当然,类也是一个对象. class c1: pass obj1 = c1() 从上面这段例子可以看到,obj1是c1这个类创建出来的一个对象,obj1是由c1去产生的,如果按照前面的理论来理解,类也是一个对象,那么c1是由谁创建出来的呢? #type函数可以查看类型,也可以用来查看对象的类,二者是一样的 print(type(obj1)) # 输出:<class '

python中将字典转换成定义它的json字符串

Python的字典和JSON在表现形式上非常相似 #这是Python中的一个字典 dic = { 'str': 'this is a string', 'list': [1, 2, 'a', 'b'], 'sub_dic': { 'sub_str': 'this is sub str', 'sub_list': [1, 2, 3] }, 'end': 'end' } //这是javascript中的一个JSON对象 json_obj = { 'str': 'this is a string',

8.python之面相对象part.1(初识类与对象)

一.类和对象的概念. 什么是类 类就是把一类事物相同的特征和动作整合到一起就是类比如说"人"就是一个类. 什么是对象 对象就是基于类创建出来的一个具体存在的事物这个事物包含了将其创造出来的类的特征和动作. 类与对象有什么关系一切的对象都是由类产生的假如说造一支笔首先要有一个造笔的模版上帝制造人也是一样制造一个人也需要一个造人的模版这个模板就是人的"类"然后根据类的定义来产生一支支笔和一个个的人. 什么是实例化 由类产生对象的过程就是实例化类实例化的结果就是一个对象对

Python对象类型——字典和集合

字典 1.字典本身是哈希的,是无序的,但字典中的键的集合或值的集合可以是有序的,通过keys()或values()返回一个列表,该列表是可排序的.注:哈希表的算法是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储你的值. 2.字典的创建可以直接赋值:可以通过工厂函数dict()生成,如果参数是可迭代的,即一个序列或是一个迭代器,或是支持迭代的对象,则没个可迭代的元素必须成对出现,eg:dict([['x',1],['y',2]]):还可以用内建方法fro

python进阶四(类的继承)【4-5 python中获取对象信息】

python中获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 6 class Student(Person): 7 def __init__(self, name, gender, score

Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出

从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己:更加方便我以后的查阅. 现在要说的是:用Python来读取excel表的数据,返回字典(dict),在脚本中进行调用 我直接贴出代码: import xlrd data_path = "F:\data" # 存放excel表的路径xlsname = "userinfo.xlsx" # excel表的名字sheetname = "Sheet1" #

Python中将dict转换为kwargs

Python中将dict转换为kwargs 我们都知道kwargs是变长kv参数,能否将dict转换成kwargs. 在python调用函数的时候func(**{'type'='event'}),可以将dict转化为kwargs. 参考 Converting Python dict to kwargs?