haster、setattr、getattr的区别
getattr():python内置函数,用来返回对象的属性
class A(object): def set(self, a, b):x = a a = b b = x print (a, b)
a = A()
b = getattr(a, 'set')
b(1, 2)
#2, 1
调用类里的方法,下面就调用了类A的方法set,调用后可以直接使用方法.
看下DBNet中的使用方法,很高级:
def extract_class_from_args(args):cls = args.copy().pop('class')#这个返回类名package, cls = cls.rsplit('.', 1)#这里不用管,只要知道package是包的路径就行module = importlib.import_module(package)#通过这个import包的路径cls = getattr(module, cls)#通过getattr得到cls这个类,相当于类的初始化return cls
setattr():python内置函数,和getattr对应,用来设置属性值,属性可以不存在。
class B(object):def __init__(self):a = 1
c = B()
setattr(c, "a", 3)
setattr(c, "m", 1)
print(c.a)
print(c.m)
#3, 1
haster、setattr、getattr的区别相关推荐
- python setattr/getattr
对照字典的get/update用于获取/更新键值: test_dic = {"Lisa": 18, "Tom": 17, "Lus": 16 ...
- Python 面向对象 —— 特殊函数(setattr、getattr、hasattr)
类的成员中以__开头和结尾的(__xx__)为特殊函数,可以在外部直接访问,当然最直接的以及设计这一语法糖的初衷还是采用其重载形式. 注:1. 一般接口是固定的,不要轻易更改: _call_:括号运算 ...
- Python精确指南——第四章-部署和技巧
4 Python工程打包部署 Python程序在提供给用户使用时,要脱离Python开发环境运行,此时,需要对python工程进行打包. 常用的Python打包工具有PyInstaller ...
- python面向对象(下)
继承 继承描述了基类的属性如何"遗传"给派生类.一个子类可以继承它的基类的任何属性,不管是数据属性还是方法. 创建子类的语法看起来与普通(新式)类没有区别,一个类名,后跟一个或多个 ...
- 接口测试面试题汇总(含答案)
目录 1.什么是接口? 2.接口组成的要素是什么? 3.你对requests了解多少 4.如何使用requests 5.requests.get作用 6.requests.get语法形式 7.requ ...
- 研发工程师面试题整理
TCP, UDP区别和各自优缺 TCP提供一种面向连接的.可靠的字节流服务 在一个 TCP 连接中,仅有两方进行彼此通信.广播和多播不能用于 TCP TCP使用校验和,确认和重传机制来保证可靠传输 T ...
- Python3.5 Django1.10 Scrapy1.2 Ubuntu16.04 HTML5
1.Python3.5 1. 虚拟环境 venv python3.4 创建虚拟环境(py3.4自带venv,不需要安装) Ubuntu 16.4 python3.5升级python3.6 sudo a ...
- python经典面试题100例 面试宝典
人生苦短 我用 Python 芝麻开门! python 进阶 1 python 经典面试题 9 python 面试 100 例 21 python 面试题总结 101 python 进阶 1 PEP8 ...
- 2023年Python面试题_Python进阶_48道
Python 中类方法.类实例方法.静态方法有何区别? 类方法:是类对象的方法,在定义时需要在上方使用"@classmethod"进行装饰,形参为 cls,表示类对象,类对象和实例 ...
最新文章
- Confluence 6 从外部目录中同步数据配置同步间隔
- java 强弱软虚_Java的四种引用,强弱软虚,用到的场景
- HTTP访问一个网站的过程详解
- 第三次学JAVA再学不好就吃翔(part81)--去除ArrayList中重复元素
- java中的与或非_与或非 · java development · 看云
- 浙江省计算机二级(C语言)通过经验+资料
- C语言中的文件是什么?
- 郁金香VC外挂教程(全) 翻录版 免Key(精品教程)
- android 动态添加listview,动态向listView Android添加元素
- Hybrid端口配置理解
- android_handler(三)
- c语言实现lcd显示自动滚动,lcd1602实现字幕滚动原理_lcd1602滚动显示程序
- 豆瓣高分JAVA书籍,你都读过吗?
- 1688API接口:item_search_img - 按图搜索1688商品(拍立淘)
- 《C++ Primer Plus 第六版 中文版》的研读与学习(五)
- 戴德金--连续性和无理数--我自己做的中文翻译第11页
- 程序设计思维与实践 Week15 实验
- Qt5.12+VS2017环境下编译QtAV视频库
- php递归遍历出文件夹下的所有文件和删除文件夹下的所有文件
- HDU 2566 统计硬币 【模拟】