python学习-68 反射
反射
1.什么是反射?
反射的概念是有Smith在1982年首次提出的,主要是指程序可以访问、检测和修正它本身状态或行为的一种能力(自省)。
2.以下四个方法可以实现自省
hasattr(object,name)
getattr(object,name,default=None)
setattr(x,y,v)
delattr(x,y)
class Car:
feture = 'big' def __init__(self,name,color):
self.name = name
self.color = color
def get_car(self):
print('this car is %s' %self.name)
def color_car(self):
print('this car is %s ' % self.color) c1 = Car('benchi','red') print(hasattr(c1,'name')) # 查看是否能调用name这个属性
print(getattr(c1,'name')) # 查看调用name后的值 setattr(c1,'size','big') # 修改
print(c1.__dict__) del c1.size # 删除
print(c1.__dict__)
运行结果:
True
benchi
{'name': 'benchi', 'color': 'red', 'size': 'big'}
{'name': 'benchi', 'color': 'red'} Process finished with exit code 0
3.导入动态模块名称
第一种导入方法:
a = __import__('字符串')
print(a)
例如m1文件夹下的b中的test模块
a = __import__('m1.b') # 只能定位到m1 . 可以print(a)试一下
a.b.test()
第二种导入方法:
import importlib
a = importlib.import_module('m1.b') # 直接定位到b 。可以print(a)试一下
m.test
4.补充封装私有
如果导入模块时,假如test前面有_代表私有,隐藏属性。导入时也需要加上_,不然会报错无法访问。
python学习-68 反射的更多相关文章
- Python学习 :反射 & 单例模式
反射 什么是反射? - 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省) 面向对象中的反射 - 通过字符串的形式来操作(获取.检查.增加.删除)对象中的成员 - python中的 ...
- 4月17日 python学习总结 反射、object内置方法、元类
一.反射 下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 class People: country="China" def ...
- Python学习day34-面向对象和网络编程总结
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python基础篇【第3篇】: Python异常处理、反射、动态导入、利用反射的web框架
异常处理 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误.当P ...
- Python学习总结:目录
Python 3.x总结 Python学习总结[第一篇]:Python简介及入门 Python学习总结[第二篇]:Python数据结构 Python学习总结[第三篇]:Python之函数(自定义函数. ...
- python学习之“切片操作从入门到精通”
在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? >>> L ...
- java学习之反射机制
java语言区别于C,C++等准静态语言的最大特点就是java的反射机制.静态语言的最直接定义就是不能在运行时改变程序结构或变量的类型.按照这样的定义,python,ruby是动态语言,C,C++,J ...
- Python:Python学习总结
Python:Python学习总结 背景 PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#.@.@@也好不到哪里(OO人员最该学习的一门语言). Pyth ...
随机推荐
- 目标检测的mAp
众多目标检测的知识中,都提到了mAp一值,那么这个东西到底是什么呢: 我们在评价一个目标检测算法的"好坏"程度的时候,往往采用的是pascal voc 2012的评价标准mAP.目 ...
- java 值传递、引用传递
class Demo02 { public static void main(String[] args) { int a=1; get(a);//值传递 System.out.println(a); ...
- 第12组 Alpha事后诸葛亮
Header 组长博客 Postmortem 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 要解决的是喜欢记录分享旅游生活的人群的行迹记录和分享问题, ...
- axios post 400 状态码
1.400状态码 400的主要有两种形式: (1).bad request意思是“错误的请求": (2).invalid hostname意思是"不存在的域名”. 2.axio ...
- iostat参数说明
一直不太会用这个参数.现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器 # iostat -x 1 10 Linux 2.6.18 ...
- Win10提示“无法打开此计算机上的组策略对象”如何解决
为了更好地管理电脑,很多朋友都会去编辑Windows10的组策略.不过,有部分用户反馈自己在打开组策略的时候,遇到了“无法打开此计算机上的组策略对象”提示,无法打开组策略,这是怎么回事呢?下面,小编就 ...
- MySQL实现按天分组统计,提供完整日期列表,无数据自动补0
业务需求最近要在系统中加个统计功能,要求是按指定日期范围里按天分组统计数据量,并且要能够查看该时间段内每天的数据量. 解决思路直接按数据表日期字段group by统计,发现如果某天没数据,该日期是不出 ...
- Linux-flock文件锁的使用
在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. flock,建议性锁,不具备强制性.一个进程使用 ...
- (八)Knockout 组件 Components
概述 :组件和自定义元素 Components 是将UI代码组织成自包含的.可重用的块的一种强大而干净的方法.他们: -可以表示单个控件/窗口小部件或应用程序的整个部分 -包含它们自己的视图,并且通常 ...
- QT中常用工具总结
1.qmake 利用.pro文件生成Makefile 命令为: eg: qmake -o Makefile hello.pro 2. uic 利用ui界面审查.h头文件 命令为: eg: uic go ...